2015年

7月

10日

Swift NSDate 日付処理まとめ

NSDate を使って現在の日付を年・月・日・分・秒単位で取得してみる


Objective-Cの場合はこちら

NSDate 簡易表示 / 表示(書式スタイル設定)/ 表示(書式設定) ......  出力Log例

 2015-07-10 07:36:58 +0000)

 Friday, July 10, 2015 at 4:36:58 PM Japan Standard Time)

1. 7/10/15, 4:36 PM

2. Jul 10, 2015, 4:36:59 PM

3. July 10, 2015 at 4:36:59 PM GMT+9

4. Friday, July 10, 2015 at 4:36:59 PM Japan Standard Time

5. 4:36:59 PM Japan Standard Time

1. 2015/07/10

2. 16/37/01

3. Anno Domini20150710(Friday)

1. 

2. 2015/07/10(Friday) 16:37:02

3. 平成2707/10(金曜日) 午後04:37:02

1. (

    eu,

    "hr_BA",

    "en_CM",

    "rw_RW",

    "en_SZ",

    "tk_Latn",

    "uz_Arab",

    "he_IL",


    "uk_UA"

)

 {

    ADT = "America/Halifax";

    AKDT = "America/Juneau";

    AKST = "America/Juneau";

    ART = "America/Argentina/Buenos_Aires";

    AST = "America/Halifax";

    BDT = "Asia/Dhaka";

    WIT = "Asia/Jakarta";

}

Optional("Friday, February 15, 1957 at 11:59:59 PM GMT+09:00")

一致

ViewController.swift

import UIKit


class ViewController: UIViewController {


    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

    }


    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }


    // [簡易表示]ボタンを押す

    @IBAction func proc01(sender: UIButton) {

        

        // 表示対象(現在日時(システム日付))

        let dt:NSDate = NSDate()

        

        // パターン1 description:説明

        let str01:NSString = dt.description

        println(" \(str01))") // 2015-07-10 04:35:24

        

        // パターン2

        let str02:NSString = dt.descriptionWithLocale(NSLocale .currentLocale())!

        println(" \(str02))") // Friday, July 10, 2015 at 1:35:24 PM Japan Standard Time


    }

    

    // [表示(書式スタイル設定)]ボタンを押す

    @IBAction func proc02(sender: UIButton) {

        

        // 表示対象

        let dt:NSDate = NSDate()

        

        //日時書式作成

        let df:NSDateFormatter = NSDateFormatter()

        

        // スタイル1

        

        df.dateStyle = .ShortStyle

        df.timeStyle = .ShortStyle

        

        println("1. \(df.stringFromDate(dt))") // 1. 7/10/15, 1:31 PM

        

        

        // スタイル2

        df.dateStyle = .MediumStyle

        df.timeStyle = .MediumStyle

        

        println("2. \(df.stringFromDate(dt))") // 2. Jul 10, 2015, 1:31:20 PM

        

        // スタイル3

        df.dateStyle = .LongStyle

        df.timeStyle = .LongStyle

        

        println("3. \(df.stringFromDate(dt))") // 3. July 10, 2015 at 1:32:44 PM GMT+9

        

        // スタイル4

        df.dateStyle = .FullStyle

        df.timeStyle = .FullStyle

        

        println("4. \(df.stringFromDate(dt))")

              // 4. Friday, July 10, 2015 at 1:32:44 PM Japan Standard Time

        

        // スタイル5

        df.dateStyle = .NoStyle  // 時刻だけ表示させない

        df.timeStyle = .FullStyle

        

        println("5. \(df.stringFromDate(dt))") // 5. 1:34:31 PM Japan Standard Time

    }

    

    // [表示(書式設定)]ボタンを押す

    @IBAction func proc03(sender: UIButton) {

        

        // 表示対象

        let dt:NSDate = NSDate()

        

        //日時書式作成

        let df:NSDateFormatter = NSDateFormatter()

        

        // パターン1

        df.dateFormat = "yyyy/MM/dd"

        println("1. \(df.stringFromDate(dt))") // 1. 2015/07/10

        

        // パターン2

        df.dateFormat = "HH/mm/ss"

        println("2. \(df.stringFromDate(dt))") // 2. 13/40/18

        

        // パターン3 AD Anno Domini

        df.dateFormat =

        "GGGGyyyyMMdd(EEEE)"

        "HHmmss"

        println("3. \(df.stringFromDate(dt))") // 3. Anno Domini20150710(Friday)

    }

    

    // [表示(言語環境(書式(ロケール)、カレンダー)設定)]ボタンを押す

    @IBAction func proc04(sender: UIButton) {

        

        // 表示対象

        let dt:NSDate = NSDate()

        

        //日時書式作成

        let df:NSDateFormatter = NSDateFormatter()

        

        // パターン1(システム設定)

        df.locale = NSLocale.currentLocale()

        df.calendar = NSCalendar.currentCalendar()


        //df.dateStyle = df.timeStyle = NSDateFormatterStylef() // 識別子:4 でも処理出来る

        // 日付型 文字列変換

        println("1. \(df.stringFromDate(dt))")

              // 1. Friday, July 10, 2015 at 2:35:34 PM Japan Standard Time

        

        // パターン2(設定:英語 ー アメリカ合衆国、西暦)

        df.locale = NSLocale(localeIdentifier: "en_US") // ロケールの設定

        df.calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)!

    

        df.dateFormat = "yyyy/MM/dd(EEEE) HH:mm:ss"

        println("2. \(df.stringFromDate(dt))") // 2. 2015/07/10(Friday) 14:04:55

        

        // パターン3(設定:日本語 ー 日本、和暦)

        df.locale = NSLocale(localeIdentifier: "ja_JP") // ロケールの設定

        df.calendar = NSCalendar(identifier: NSCalendarIdentifierJapanese)!


        // (EE) (EEEE)金曜日

        df.dateFormat = "GGyyMM/dd(EEEE) ahh:mm:ss";

        println("3. \(df.stringFromDate(dt))") // 3. 平成2707/10(金曜日) 午後02:04:55

        

    }

    

    // [表示(ロケール識別子一覧)]ボタンを押す

    @IBAction func proc05(sender: UIButton) {

        

        // 利用可能な「言語/国コード」

        let arr:NSArray = NSLocale.availableLocaleIdentifiers()

        println("1. \(arr)")

        

    }

    

    // [表示(タイムゾーン設定)]ボタンを押す

    @IBAction func proc06(sender: UIButton) {

        

        // 調査中

    }

    

    // [タイムゾーン一覧]ボタンを押す

    @IBAction func proc07(sender: UIButton) {

        

        let dic:NSDictionary = NSTimeZone.abbreviationDictionary()

        println(" \(dic)")

    }

    

    // [文字列から変換]ボタンを押す

    @IBAction func proc08(sender: UIButton) {

        

        // 日時書式の作成

        let df:NSDateFormatter = NSDateFormatter()

        df.dateFormat = "yyyy/MM/dd HH:mm:ss"

        

        // 日付型へ変換

        let str:NSString = "1957/02/15 23:59:59"

        let dt:NSDate = df.dateFromString(str as String)!

        

        println("\(dt.descriptionWithLocale(NSLocale.currentLocale()))")

        

    }

    

    // [経過日時の取得]ボタンを押す

    @IBAction func proc09(sender: UIButton) {

        

        // 調査中

    }

    

   // [一致判定]ボタンを押す

    @IBAction func proc10(sender: UIButton) {

        

        // 日時書式の作成

        let df:NSDateFormatter = NSDateFormatter()

        df.dateFormat = "yyyy/MM/dd HH:mm:ss"

        

        let dt01:NSDate = df.dateFromString("2000/01/01 01:01:01")!

        let dt02:NSDate = df.dateFromString("2000/01/01 01:01:01")!

        

        //

        var res:Bool = dt01 == dt02

        

        if (res) { // (res == YES)

            println("一致")

        } else {

            println("不一致")

        }


    }

    

    // [大小判定]ボタンを押す

    @IBAction func proc11(sender: UIButton) {

        

         // 調査中

    }


}

GitHub DateTypeSwift

  

目 次