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

Ios 为什么ordinalityOfUnit在使用NSCalendarUnitEra时使用星期一作为一周的第一天?,ios,nsdate,nscalendar,Ios,Nsdate,Nscalendar,我试图计算两个日期之间的日历周数。我正在使用以下代码: [cal ordinalityOfUnit:NSCalendarUnitWeekOfYear inUnit:NSCalendarUnitEra forDate:thenDate]; [cal ordinalityOfUnit:NSCalendarUnitWeekOfYear inUnit:NSCalendarUnitEra forDate:nowDate]; 2017年1月15日(星期日)为105192周,2017年1月16日(星期一)为

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

[cal ordinalityOfUnit:NSCalendarUnitWeekOfYear inUnit:NSCalendarUnitEra forDate:thenDate];
[cal ordinalityOfUnit:NSCalendarUnitWeekOfYear inUnit:NSCalendarUnitEra forDate:nowDate];
2017年1月15日(星期日)为105192周,2017年1月16日(星期一)为105193周。这表明它将周一作为一周的第一天。我已验证
cal.firstWeekday
为1。如果我将
inUnit
NSCalendarUnitEra
更改为
NSCalendarUnitYear
,它将正常工作。有办法解决这个问题吗?
我想我可以从两个日期中减去一天,但这似乎很麻烦。

经过多次试验,如果你确保所有日期都是格林尼治标准时间,并且你将
cal
时区设置为格林尼治标准时间,它就会像人们所期望的那样工作。

经过多次试验,如果您确保所有日期均为格林尼治标准时间,并将
cal
时区设置为格林尼治标准时间,则它将按预期工作