为啥在使用 NSCalendarUnitEra 时 ordinalityOfUnit 使用星期一作为一周的第一天?
Posted
技术标签:
【中文标题】为啥在使用 NSCalendarUnitEra 时 ordinalityOfUnit 使用星期一作为一周的第一天?【英文标题】:Why does ordinalityOfUnit use Monday as the first day of the week when using NSCalendarUnitEra?为什么在使用 NSCalendarUnitEra 时 ordinalityOfUnit 使用星期一作为一周的第一天? 【发布时间】:2017-01-16 18:04:08 【问题描述】:我正在尝试计算两个日期之间的日历周数。我正在使用以下代码:
[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
它可以正常工作。有没有解决的办法?
我想我可以从两个日期中减去一天,但这似乎很老套。
【问题讨论】:
【参考方案1】:经过大量试验,如果您确保所有日期都以 GMT 为单位,并将cal
timeZone 设置为 GMT,那么它可以正常工作。
【讨论】:
以上是关于为啥在使用 NSCalendarUnitEra 时 ordinalityOfUnit 使用星期一作为一周的第一天?的主要内容,如果未能解决你的问题,请参考以下文章