Моя страна находится в 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 дату с переходом на летнее время ...
какие-нибудь подсказки? еще раз спасибо.