Как рассчитывается [дата NSDate]? - PullRequest
7 голосов
/ 16 сентября 2011

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

Что заставило меня задуматься - как , в частности , рассчитывается [NSDate date] при запуске приложения?

Редактировать: Полагаю, я действительно спрашиваю: как iPhone получает время из авторитетного источника? Похоже, он исходит от вышки сотовой связи, которую я хотел бы Предположим, все синхронизированы как-то. Это правда?

Редактировать: Похоже, он использует gettimeofday (), которая использует системные часы. А из Apple docs , похоже, когда у вас в iPhone установлено «Автоматически», он использует правильное время в сотовой сети.

Спасибо

Ответы [ 3 ]

3 голосов
/ 16 сентября 2011

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

используется gettimeofday.

как таковой, вы не можете ожидать, что это значение будет равно или идеально синхронизировано на двух устройствах.

1 голос
/ 22 сентября 2011

Системные часы UNIX, использующие (как говорили другие люди) gettimeofday().Телефон, вероятно, синхронизируется с NTP-сервером, таким как time.apple.com - это то, что делает настольный компьютер OS X.

1 голос
/ 19 сентября 2011

Помните, что ваше приложение может работать на iPod Touch или на телефоне, который просто не имеет подключения 3G.Вы получаете любое время, которое телефон отображает на верхней панели.

...