【发布时间】:2012-01-06 00:08:15
【问题描述】:
在我的 iOS 应用程序中,我必须根据当前日期创建一周。
这是一段代码:
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setYear:year];
[components setWeek:week];
[components setWeekday:2];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:components];
在这种特殊情况下,年份是 2012 年,星期是 1。我希望日历返回 2012-01-02,因为那是 2012 年第 1 周的星期一日期。但它返回的是 2012-12 -30。
时区更新:
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setYear:2012];
[components setWeek:1];
[components setWeekday:2];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[gregorian setTimeZone:[NSTimeZone localTimeZone]];
NSDate *date = [gregorian dateFromComponents:components];
仍然返回 2012-12-30。
【问题讨论】:
标签: ios nscalendar nsdatecomponents