为什么在使用NSCalendarUnitEra时,ordinalityOfUnit使用星期一作为一周的第一天?

时间:2017-01-16 18:04:08

标签: ios nsdate nscalendar

我正在尝试计算两个日期之间的日历周数。我正在使用以下代码:

[cal ordinalityOfUnit:NSCalendarUnitWeekOfYear inUnit:NSCalendarUnitEra forDate:thenDate];
[cal ordinalityOfUnit:NSCalendarUnitWeekOfYear inUnit:NSCalendarUnitEra forDate:nowDate];

日期为15-1-2017,一个星期日,结果为105192周,而16-1-2017,一个星期一,结果为105193.这表明它使用星期一作为一周的第一天。我已验证cal.firstWeekday为1.如果我将inUnitNSCalendarUnitEra更改为NSCalendarUnitYear,则说明其正常工作。有没有解决的办法? 我想我可以从两个日期减去一天,但这似乎非常hackie。

1 个答案:

答案 0 :(得分:0)

经过多次试验,如果您确定所有日期都是格林威治标准时间,并且您将cal timeZone设置为GMT,那么它可以正常运行。