iPhone - текущая дата с учетом летнего времени

Моя страна находится в GMT + 0. Сейчас у нас +1 час, потому что мы находимся в летнем.

Когда я это делаю

[NSDate date];

, предполагалось вернуть текущую дату и время, но когда я это делаю, я получаю время по Гринвичу без учета летнего времени .

Это то, что говорится в документации о команде date

Создает и возвращает новую дату, установленную на текущую дату и время.

Почему Apple делает это с нами? Почему все так сложно? Это ошибка? Есть ли способ узнать текущее время, в которое включено устройство? в то же время, которое отображается на часах устройства?

Мое приложение зависит от даты и времени, и неправильная дата для пользователя, находящегося в другом часовом поясе по всему миру, который находится в летнее или зимнее время, будет катастрофой.

] Спасибо.


ИЗМЕНИТЬ

После нескольких ответов я попробовал этот код:

NSDate *wrongToday = [NSDate date];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];

[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
NSString *currentTime = [dateFormatter wrongToday];

NSDate *today = [dateFormatter dateFromString:currentTime];

угадайте что, сегодня = неверно сегодня ... Другими словами, без изменений, у меня по-прежнему неверная дата без перехода на летнее время. что более удивительно, так это то, что currentTime показывает в NSString дату с переходом на летнее время ...

какие-нибудь подсказки? еще раз спасибо.

8
задан SpaceDog 28 July 2011 в 23:58
поделиться