Дата возврата NSDate на 2 часа меньше, чем должна - PullRequest
2 голосов
/ 12 апреля 2011

Когда я звоню [NSDate date], он возвращает на 2 часа меньше, чем должен. Я проверил настройки часов своего компьютера, и они все в порядке. Я проверил настройки в iPhone и часовой пояс и часы все в порядке. Даже симулятор показывает правильное время на верхней панели инструментов. Но когда я пытаюсь записать текущую дату, она показывает на 2 часа меньше, чем должна. У меня закончились идеи, где искать.

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011

Все даты, возвращаемые [NSDate date], находятся в часовом поясе GMT.

Когда вы используете какой-либо NSDateFormatter, просто установите часовой пояс, и он выведет правильное время.

0 голосов
/ 13 апреля 2011

Я нашел свое решение здесь: Как преобразовать время в часовой пояс устройства iPhone?

Так что, если вы когда-нибудь захотите изменить [дата NSDate] на местное время, просто используйте код, указанный в ссылке выше. И не забудьте изменить timeZoneWithAbbreviation sourceTimeZone с EST на GMT (потому что NSDate всегда в GMT)

Еще раз спасибо всем за помощь ..

0 голосов
/ 12 апреля 2011

Внимательно посмотрите на вывод оператора NSLog ().Вы увидите, что выходные данные всегда содержат часовой пояс с использованием стандартного UTC.Поэтому дата на самом деле правильная, с учетом часового пояса.

...