init] возвращать дату час назад? - PullRequest
1 голос
/ 08 октября 2010

Когда я звоню

NSDate *now = [[NSDate alloc] init]; 

, чтобы узнать текущую дату и время, я проверяю это с помощью:

NSLog(@"Date now: %@", now);

дата выдачи составляет один час в прошлом.

2010-10-08 12: 04: 38.227 MiniBf [1326: 207] Сейчас: 2010-10-08 11:04:38 GMT

Мое времяЗона где-то установлена ​​неправильно?

Спасибо!

Майкл

Ответы [ 4 ]

1 голос
/ 15 ноября 2010

Я видел такое поведение на DatePicker, работающем на устройствах iOS 4.1, в то время как на iOS 4.0 и более ранних версиях этого не происходит. Я не могу подтвердить, что это на самом деле та же ошибка.

Но я предлагаю вам проверить, связана ли эта ошибка с подтвержденной Apple ошибкой в ​​отношении дат / летнего времени / 4.1, запустив этот код на <4.1. Затем вам нужно будет решить, следует ли взломать исправление для этой конкретной версии / дат или дождаться следующего выпуска SDK, чтобы исправить его и не поддерживать устройства 4.1 ... </p>

Ошибка, о которой я говорю, полагаю, возникает только при прохождении дат в летний период (2010: 28 марта - 31 октября)

0 голосов
/ 08 октября 2010

Возможно, ваш часовой пояс неверен в симуляторе iPhone. Нажмите кнопку «Домой», зайдите в settings.app и исправьте ее;)

0 голосов
/ 08 октября 2010

Используйте NSDateFormatter для локализации даты:

NSLog(@"%@",[NSDateFormatter localizedStringFromDate:[NSDate date] dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle]); 
0 голосов
/ 08 октября 2010

Использовать NSDate * now = [NSDate date];

Я использую его и даю мне идеальный результат.

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