Проблема часового пояса с веб-сервером и приложением для iPhone - PullRequest
0 голосов
/ 12 января 2012

У меня проблемы с моим веб-сервером и приложением для iPhone, учитывая часовой пояс.Все хорошо, и я знаю, как это изменить, но мне просто интересно, каков наилучший подход, учитывая следующий случай.

Приложение iPhone, над которым я работаю, использует несколько NSDate объектов для хранения даты и времениценности.Эти данные обмениваются с веб-сервером (включая базу данных), который использует временные метки для сравнения дат.Для экспорта объекта NSDate я обычно конвертирую его в строку, форматируя NSDate timeIntervalSince1970.Я не знаю точный часовой пояс этого интервала, но я предполагаю, что это локаль (если не указано иное).

Мой веб-сервер установлен в CET (UTC-1).Когда приложение для iPhone преобразует интервал, скажем, в UTC-3, а база данных сравнивает его с датой UTC-1, вы, очевидно, получаете разрыв.

Какой здесь лучший подход?Как timeIntervalSince1970 обрабатывает часовые пояса?Я хорошо знаю, что NSDate не имеет часового пояса (часовой пояс - это просто представление), но, поскольку я конвертирую время в строку и преобразовываю ее в строку, я думаю, что это важно.

Любая помощь очень ценится.

С уважением,

Reinder

Ответы [ 2 ]

1 голос
/ 12 января 2012

Просто всегда используйте время UTC.Как на клиенте, так и на сервере.

0 голосов
/ 12 января 2012

Да, я бы согласился с предыдущим постом, чтобы сервер и база данных iPhone оставались в одном часовом поясе (UTC).Я бы связывался с другим часовым поясом, когда фактически отображал что-то на экране, например, в UITextView, когда вы использовали местное время.Поэтому, если кто-то в Сиднее синхронизируется с сервером одновременно с кем-то в Лондоне, на сервере и в базе данных обоих iPhone будет храниться одно и то же время и дата, но они будут отображаться по разному.

...