以下内容将创建一个NSDateComponents
对象,其中包含day
和weekday
但不包含hour
:
var today = NSDate()
var gregorian = NSCalendar(calendarIdentifier: NSGregorianCalendar)
var flags: NSCalendarUnit = .DayCalendarUnit | .WeekdayCalendarUnit
var components = gregorian.components(flags, fromDate: today)
// valid
components.day
components.weekday
// invalid
components.hour
为了拥有hour
,我必须|
- 在.HourCalendarUnit
这样:
flags = flags | .HourCalendarUnit
是否有指定所有标志的标志?或者,如果我想让|
全部拥有它们,我是否只需手动NSDateComponents
它们?
或者,理想情况下,我希望能够在不使用today.hour
的情况下说出NSDateComponents
。这样的课程是否存在?
答案 0 :(得分:10)
NSCalendarUnit
初始化 UInt
,这样就可以了
所有可能的组成部分:
var today = NSDate()
var gregorian = NSCalendar(calendarIdentifier: NSGregorianCalendar)
var flags = NSCalendarUnit(UInt.max)
var components = gregorian.components(flags, fromDate: today)
不存在today.hour
方法,因为无法进行计算
知道用于转换的时区。
Swift 2的更新:
let gregorian = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let flags = NSCalendarUnit(rawValue: UInt.max)