Я просто хочу уточнить, насколько я понимаю, как работают даты часовых поясов &.Обращение часовых поясов в Какао
В принципе, у меня есть строка даты @ "2008-07-06 12:08:49", которую я хочу преобразовать в NSDate. Я хочу, чтобы эта дата и время находились в том месте, где установлен часовой пояс текущего пользователя. Поэтому, если они находятся в GMT или HST, все равно 12:08:49.
Если у меня есть дата в UNIX форме 1215382129 (UTC) и мой часовой пояс устанавливаются в Лондоне (GMT), выводимая дата от NSLog() является:
2008-07-06 12:08:49 +0100
Если я после этого изменить часовой пояс на Гавайи (HST) и выход ту же дату, я получаю:
2008-07-06 12:08:49 -1000
Это кажется отлично работаю, но у меня создалось впечатление, что я получил время на гавайском языке, мне пришлось бы физически добавить разницу во времени (-10h rs) к отметке времени unix. Разве это не требуется?
Означает ли это, что независимо от даты и времени, на которое указывает время unix, оно всегда указывает на то же дату и время в любом часовом поясе, в котором находится пользователь?
Надеюсь, что это имеет смысл!
Редактировать
Я только что понял (благодаря Kevin Conner!), Что на самом деле NSDateFormatter создает различные временные метки Unix для этой строки даты в зависимости от текущего часового пояса! Так что я был совершенно неправ! :-)
Ах, интересно! Я не понимал временные зоны «NSDateFormatter». Похоже, что он автоматически устанавливает его из системы по умолчанию. И это создает разные временные метки unix в зависимости от зоны! Спасибо за это! –
Я не подтвердил это, но я думаю, что вы найдете то же самое, что и в отношении синтаксического анализа даты. Когда вы разбираете строку даты, она будет считать, что строка находится в вашем системном часовом поясе, если вы не настроите парсер по-разному. Приветствия :) –