В каком часовом поясе рассчитываются текущие шаги в HealthKit? Это UTC или часовой пояс устройства? Что делать, если пользователь меняет часовые пояса? - PullRequest
0 голосов
/ 06 июля 2018

В каком часовом поясе рассчитываются текущие шаги в healthKit? Это UTC или часовой пояс устройства? Что делать, если пользователь меняет часовые пояса? Как это повлияет на данные аптечки?

1 Ответ

0 голосов
/ 15 августа 2018

startDate и endDate объектов HKSample являются значениями NSDate и, следовательно, не содержат информации о часовом поясе (для получения дополнительной информации см. Обзор документации NSDate ). Технически я бы не сказал, что значения NSDate являются датами UTC, но вы можете думать о них таким образом.

Это означает, что, глядя только на startDate / endDate семпла, вы не можете сказать, какое было время local для пользователя, когда семпл был записан. Например, если пользователь перемещался по часовым поясам, вы не сможете определить, была ли фактически записана выборка в 23:30 пятницы по местному времени или в 12:30 субботы в другом месте.

Существует стандартный ключ HKMetadataKeyTimeZone, который можно использовать для сохранения исходного часового пояса в словаре metadata семпла. Это даст вам именно ту информацию, которая вам нужна, но вы не можете полагаться на ее фактическое присутствие. Apple даже не заполняет метаданные часового пояса для данных о состоянии здоровья, записанных непосредственно iPhone или Apple Watch (см. этот пост переполнения стека для дальнейшего обсуждения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...