鉴于NSDate,我试图解析一周中的那一天.
NSDateComponents *comps = [[NSDateComponents alloc] init]; comps=[calendar components: NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitWeekOfMonth | NSCalendarUnitWeekOfYear | NSCalendarUnitWeekday fromDate:date];
当date的值为2015-11-30 00:58:52 +0000
(这是星期一)时,值comps.weekday
打印为1
当date的值为2015-11-15 09:59:46 +0000
(这是星期日)时,值comps.weekday
也是1.
NSDateComponents
使用时区NSCalendar
来解释当天.NSCalendar
默认为使用设备的时区.
2015-11-30 00:58:52 UTC
如果您在UTC
时区或其中一个时区,则只是星期一.如果你在EST
(-5)时区,那么这将是一个星期天.
如果要在UTC
时区解释星期几,请将timeZone
属性更改为[NSTimezone timeZoneForSecondsFromGMT:0]
.
文档编号:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateComponents_Class/#//apple_ref/occ/instp/NSDateComponents/timeZone