NSCalendar DateFromComponents: GMT TimeZone вместо SystemTimeZone

Этот код

NSCalendar *calendar =[NSCalendar currentCalendar];
[gregorian setTimeZone:tz];

NSLog(@"%@", [gregorian timeZone]);

NSDateComponents *comp = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit) fromDate:[NSDate date]];

[comp setDay:info.day];
[comp setMonth:info.month];
[comp setYear:info.year];
[comp setHour:info.hour];
[comp setMinute:info.minute];
[comp setSecond:info.second];
[comp setTimeZone:tz];  

NSLog(@"%@", [comp timeZone]);
NSLog(@"%@", [gregorian dateFromComponents:comp]);

показывает следующее в консоли:

Europe/Moscow (MSKS) offset 14400 (Daylight)

Europe/Moscow (MSKS) offset 14400 (Daylight)

2011-08-31 20:00:00 +0000

Итак, часовой пояс для календаря и компонентов указан правильно, но [Gregorian DateFromcomponents : comp] Возвращает значение NSDate с неправильным часовым поясом (GMT).

Что мне нужно исправить, чтобы получить правильный часовой пояс?

6
задан Mitry 6 September 2011 в 20:37
поделиться