为什么NSCalendar的dateFromComponents返回错误的日期?

art*_*pro 5 iphone nscalendar nsdatecomponents

我期待2010-10-11 00:00:00

但相反,我收到2010-10-10 21:00:00 +0000

我知道,我可以添加几个小时并收到所需的日期,但我不明白为什么我前一天有21个小时......

请帮忙!

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:2010];
[comps setMonth:10];
[comps setDay:11];

[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];

NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *retDate = [cal dateFromComponents:comps];
Run Code Online (Sandbox Code Playgroud)

Kin*_*iss 15

我认为你的问题可以通过设置来解决NSTimeZone.

  • 是的,你是对的![cal setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 解决了这个问题 (3认同)