開発環境
- Xcode 6 Beta
- Mac OS X 10.9.3
実行環境
- iOS Simulator (iPhone5s / iOS 8.0)
コード(USロケールの場合)
let now = NSDate() // 現在日時の取得
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US") // ロケールの設定
dateFormatter.timeStyle = .NoStyle // 時刻のスタイルの設定
dateFormatter.dateStyle = .NoStyle // 日付のスタイルの設定
println(dateFormatter.stringFromDate(now)) // -> 出力されない
dateFormatter.timeStyle = .ShortStyle
dateFormatter.dateStyle = .ShortStyle
println(dateFormatter.stringFromDate(now)) // -> 6/24/14, 11:01 AM
dateFormatter.timeStyle = .MediumStyle
dateFormatter.dateStyle = .MediumStyle
println(dateFormatter.stringFromDate(now)) // -> Jun 24, 2014, 11:01:31 AM
dateFormatter.timeStyle = .LongStyle
dateFormatter.dateStyle = .LongStyle
println(dateFormatter.stringFromDate(now)) // -> June 24, 2014 at 11:01:31 AM GMT+9
dateFormatter.timeStyle = .FullStyle
dateFormatter.dateStyle = .FullStyle
println(dateFormatter.stringFromDate(now)) // -> Tuesday, June 24, 2014 at 11:01:31 AM Japan Standard Time
dateFormatter.timeStyle = .NoStyle // 時刻だけ表示させない
dateFormatter.dateStyle = .FullStyle
println(dateFormatter.stringFromDate(now)) // -> Tuesday, June 24, 2014
コード(JPロケールの場合)
let now = NSDate() // 現在日時の取得
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "ja_JP") // ロケールの設定
dateFormatter.timeStyle = .NoStyle // 時刻のスタイルの設定
dateFormatter.dateStyle = .NoStyle // 日付のスタイルの設定
println(dateFormatter.stringFromDate(now)) // -> 出力されない
dateFormatter.timeStyle = .ShortStyle
dateFormatter.dateStyle = .ShortStyle
println(dateFormatter.stringFromDate(now)) // -> 2014/06/24 11:14
dateFormatter.timeStyle = .MediumStyle
dateFormatter.dateStyle = .MediumStyle
println(dateFormatter.stringFromDate(now)) // -> 2014/06/24 11:14:17
dateFormatter.timeStyle = .LongStyle
dateFormatter.dateStyle = .LongStyle
println(dateFormatter.stringFromDate(now)) // -> 2014年6月24日 11:14:17 JST
dateFormatter.timeStyle = .FullStyle
dateFormatter.dateStyle = .FullStyle
println(dateFormatter.stringFromDate(now)) // -> 2014年6月24日火曜日 11時14分17秒 日本標準時
dateFormatter.timeStyle = .NoStyle // 時刻だけ表示させない
dateFormatter.dateStyle = .FullStyle
println(dateFormatter.stringFromDate(now)) // -> 2014年6月24日火曜日
enumの省略記法
- .NoStyle
- .ShortStyle
などは、enumの省略記法で書いている。
本来は、enum型である「NSDateFormatterStyle」を先頭に付けて、
- NSDateFormatterStyle.NoStyle
- NSDateFormatterStyle.ShortStyle
と書く。
ただし、今回は、代入先であるNSDateFormatterクラスのインスタンスの
- timeStyleプロパティ
- dateStyleプロパティ
が、NSDateFormatterStyle型で宣言されているため、「NSDateFormatterStyle」部分を省略することができる。
参考文献
Foundation Framework Reference - NSDate
Foundation Framework Reference - NSDateFormatter
[The Swift Programming Language - Enumerations]
(https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Enumerations.html#//apple_ref/doc/uid/TP40014097-CH12-XID_185)