2016-08-11 1 views
-1

Я использую MacBook, разрабатывающий приложение iOS &, запускающее его на реальном iPhone. И мой MacBook & мой iPhone показать мне текущее время 2016-08-11 13:18Используйте [NSDate date], чтобы получить текущее время, но возвращаемое значение неверно

Но в то же время, следующий код показывает мне текущее время, которое на 3 часа раньше, чем сейчас:

NSLog(@"NOW = %@",[NSDate date]); // it prints out 2016-08-11 10:18:17 +0000 

Но NSDate документация сообщает мне, что функция +date возвращает текущую дату и время. Почему я получаю дату на три часа раньше?

+0

Когда вы печатаете дату, она показывает ее в формате UTC (+0000). Я думаю, вы находитесь в часовом поясе на 3 часа позже, чем UTC – Paulw11

ответ

0

При регистрации NSDate с использованием NSLog он всегда отображается в UTC. Похоже, вы находитесь в часовом поясе UTC + 3, поэтому время, указанное в формате UTC, будет на 3 часа раньше.

Если вы хотите отобразить дату в своем локальном часовом поясе, создайте форматирование даты и используйте ее для отображения даты вместо этого. (По умолчанию для вопросов используется местный часовой пояс пользователя.)

NSDate не имеет встроенного часового пояса. NSDate записывает мгновенное время. Вы должны использовать часовой пояс, чтобы посмотреть на него.

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

+0

Как я могу создать дату, которая совпадает с текущим системным временем в моем iphone? –

+0

См. Дублированный вопрос, на который ссылаются другие. –

+0

он не говорит, как создать NSDate для текущего времени, он говорит только о применении dateformatter, который я не хочу –