Search code examples
iphonenscalendarnsdatecomponents

Why NSCalendar's dateFromComponents returns wrong date?


I am expecting 2010-10-11 00:00:00

But instead I receive 2010-10-10 21:00:00 +0000

I know, that I can add a few hours and receive desired date, but I do not understand why I get previous day with 21 hours...

Please, help!

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];

Solution

  • I think your problem may be solved by setting the NSTimeZone.