【发布时间】:2013-07-04 00:19:48
【问题描述】:
我想从周数和年份获取日期。我从服务器获得周数和年份。我是 尝试以下代码,但它不会工作。
NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
// this is imporant - we set our input date format to match our input string
// if format doesn't match you'll get nil from your string, so be careful
[dateFormatter2 setDateFormat:@"yyyy-MM-dd"];
NSDate *now = [dateFormatter2 dateFromString:@"2001-01-01"];
NSCalendar *gregorian1 = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps1 = [gregorian1 components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:now];
[comps1 setYear:2013];
[comps1 setWeek:51];
[comps1 setWeekday:2];
NSDate *resultDate = [gregorian1 dateFromComponents:comps1];
输出是:- 2012-12-31 18:30:00 +0000
我做错了什么?提前谢谢..
【问题讨论】:
-
我刚刚运行它并得到了不同的答案:
resultdate: 2013-01-01 00:00:00 +0000 -
也许是
setWeekOfYear:? (只是猜测) -
文档的这一部分也有:“在使用使用基于周的日历常量创建的日历时,使用带有日历年和工作日的 NSCalendar 会导致日期不明确。”听起来你可能正在打那个。
-
您是否应该将
NSWeekCalendarUnit作为您的NSDateComponents之一?
标签: ios objective-c nsdate