NSDate теперь 1 час от моего эмулятора IOS

Привет! Я создаю NSDate, который я использую, чтобы установить Picker, но когда я вывожу дату выбора в NSLog, он всегда на час отстает от времени, показанного в реальном окне выбора.

Также в качестве теста я заметил, что код: NSDate *now = [NSDate date]; // должен дать мне текущую дату и время на моем эмуляторе NSLog(@"Date and Time now: %@", now);

Значение NSLog всегда на 1 час больше времени, указанного на моем эмуляторе.

У меня вопрос почему?

Заранее спасибо:)

ОБНОВИТЬ ------------------------------------------------- -------------------------------

Я сделал еще пару тестов, и оказалось, что NSDate, использующий NSGregorian Calendar, возвращал правильное время, а затем NSDate, использующий currentCalendar, был отключен на 1 час.

Итак, мой новый вопрос: почему? Я проверил настройки на моем эмуляторе, и на календаре устройства установлен григорианский. Может ли это быть из-за разницы часовых поясов? Если так, то есть ли способ настроить сборщик на использование того же часового пояса, что и на пользовательском устройстве?

Спасибо

1 ответ

Я думаю, это потому, что время вашего симулятора установлено на часовой пояс по умолчанию (EN). NSDate всегда устанавливается с вашего местного времени. Когда вы попробуете это на вашем устройстве, это будет правильно.

у меня есть этот код в моем проекте и отлично работает:

NSDate*now = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd.MM.yyyy"];

я создаю дату и сохраняю ее в свои CoreData. Всегда это время будет моим реальным временем на моем устройстве.

Поздравляю с вашим новым iPhone в любом случае. Добро пожаловать в большую семью Apple!:)

Другие вопросы по тегам