为什么在使用NSCalendarUnitEra时,ordinalityOfUnit使用星期一作为一周的第一天?
问题描述:
我在计算两个日期之间的日历周数。我使用下面的代码:为什么在使用NSCalendarUnitEra时,ordinalityOfUnit使用星期一作为一周的第一天?
[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.如果我将inUnit
从NSCalendarUnitEra
更改为NSCalendarUnitYear
它可以正常工作。有没有解决的办法? 我想我可以从两个日期中减去一天,但这似乎很hackie。
答
经过大量实验后,如果您确定所有日期都是GMT,并且您设置了cal
timezone到GMT,它的工作原理与预期的一样。