Часовые пояса / DST независимые временные метки с NSDate - PullRequest
0 голосов
/ 23 июля 2010

Я создаю объекты, которые будут отправлены на сервер, и я стараюсь обеспечить учет проблем часового пояса и перехода на летнее время, поэтому я хочу, чтобы мои метки времени были «секундами с 1970 года» независимо от часового пояса и т. Д.

Достаточно ли для этого [NSDate timeintervalSinceReferenceDate]? В документах, которые я знаю, написано время с January 1 1970 00:00:00 GMT, чего я и хочу, но как NSDate обрабатывает часовые пояса? Если пользователь отправляет объект со своим устройством, настроенным на EST, а затем меняет свое устройство на PST, какое влияние это окажет на отметки времени? Моя цель - чтобы это не имело никакого значения, и я не могу понять это из документации.

Программирование дат - сложная проблема, и я хочу убедиться, что я правильно понял.

1 Ответ

1 голос
/ 25 июля 2010

В документации сказано, что timeIntervalSinceReferenceDate дает время с 2001 года. timeIntervalSince1970 возвращает время с 1970 года.

Но в любом случае, NSDate описывает момент времени. Часовой пояс пользователя влияет только на то, как дата отображается пользователю (например, NSDateFormatter). Так что вам не нужно беспокоиться о часовых поясах.

Но, возможно, вам нужно беспокоиться о неправильных часах пользователя. Пользователь может установить свои часы на что угодно, поэтому вам не следует доверять им что-либо критически важное. Вместо этого используйте часы сервера.

...