startDate
и endDate
объектов HKSample являются значениями NSDate и, следовательно, не содержат информации о часовом поясе (для получения дополнительной информации см. Обзор документации NSDate ). Технически я бы не сказал, что значения NSDate являются датами UTC, но вы можете думать о них таким образом.
Это означает, что, глядя только на startDate / endDate семпла, вы не можете сказать, какое было время local для пользователя, когда семпл был записан. Например, если пользователь перемещался по часовым поясам, вы не сможете определить, была ли фактически записана выборка в 23:30 пятницы по местному времени или в 12:30 субботы в другом месте.
Существует стандартный ключ HKMetadataKeyTimeZone
, который можно использовать для сохранения исходного часового пояса в словаре metadata
семпла. Это даст вам именно ту информацию, которая вам нужна, но вы не можете полагаться на ее фактическое присутствие. Apple даже не заполняет метаданные часового пояса для данных о состоянии здоровья, записанных непосредственно iPhone или Apple Watch (см. этот пост переполнения стека для дальнейшего обсуждения).