NSDateComponents周在iOS8上的工作方式不同

时间:2014-09-30 11:47:54

标签: ios iphone ios8 nsdatecomponents

自iOS8以来,

NSDateComponents week已被弃用。 Apple会建议使用weekOfMonthweekOfYear,具体取决于具体情况,但它们的工作方式不同。例如:

components1 = [calendar components:NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit
                          fromDate:[self date7DaysAgo]
                            toDate:[NSDate date]
                           options:0];

components1返回month = 0,week = 1,day = 0,weekOfMonthweekOfYear都等于2147483647(整数最大值)。

components2 = [calendar components:NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit
                          fromDate:[self date30DaysAgo]
                            toDate:[NSDate date]
                           options:0];

components2返回month = 1(我知道它取决于它,但它只是一个例子),week = 0,day = 0,weekOfMonthweekOfYear都等于2147483647(整数最大值)

Week会返回某段时间内的周数(如果是一周或多次),并且与一个月或一年中的一周数完全不同。苹果为什么建议使用它呢?

1 个答案:

答案 0 :(得分:6)

使用NSWeekOfMonthCalendarUnitNSWeekOfYearCalendarUnit代替NSWeekCalendarUnit