Swift

[Swift]NSDateComponentで日付の各要素を取得

More than 3 years have passed since last update.

年、月、日等の日付に関する各要素を一つ一つで取り出したいときはNSDateComponentを使います。


コード

let date = NSDate()

let calendar = NSCalendar(identifier: NSGregorianCalendar)
//和暦を使いたいときはidentifierにはNSJapaneseCalendarを指定
//let calendar = NSCalendar(identifier: NSJapaneseCalendar)

var comps:NSDateComponents = calendar.components(NSCalendarUnit.YearCalendarUnit|NSCalendarUnit.MonthCalendarUnit|NSCalendarUnit.DayCalendarUnit|NSCalendarUnit.HourCalendarUnit|NSCalendarUnit.MinuteCalendarUnit|NSCalendarUnit.SecondCalendarUnit,
fromDate: date)

var year = comps.year
var month = comps.month
var day = comps.day
var hour = comps.hour
var minute = comps.minute
var second = comps.second

println("\(year)/\(month)/\(day)/\(hour)/\(minute)/\(second)")
println("\(year)")
println("\(month)")
println("\(day)")
println("\(hour)")
println("\(minute)")
println("\(second)")


出力結果

2014/7/28/17/23/59

2014

7

28

17

23

59


まとめ

Objective-Cの頃は

NSCalendarUnit.YearCalendarUnit



NSYearCalendarUnit

と書いていました。

この書き方の違いがあり、最初にcalendar.componentsを指定する時に少し詰まりました。

時間関係の他に、

・曜日

・一年の何週目か

・第何四半期か

・今月の何週目か

などの要素も取り出せます。