Находится ли дата в целевом часовом поясе в ISO 8601? - PullRequest
2 голосов
/ 16 апреля 2020

Я пытаюсь разобрать дату в формате ISO 8601 , и некоторые моменты мне не ясны.

Например, у меня есть следующая дата: 2020-04-16T07:16:34.858215+03:00 в Europe/Moscow часовом поясе.

Это означает 07:16 по московскому времени или 10:16? Я имею в виду, нужно ли добавлять 3 часа к дате или дата уже по московскому времени, а часовой пояс просто показывает, как он отличается от UT C?

PS Я пытался найти информацию о это, но везде это просто общее описание формата без подробностей.

1 Ответ

3 голосов
/ 16 апреля 2020

Указанное время является местным, поэтому 2020-04-16T07:16:34.858215+03:00 означает 7:16 утра в Москве или 4:16 UT C.

Википедия содержит хороший пример, поясняющий вещи, по крайней мере, до некоторой степени:

Следующие моменты времени относятся к одному и тому же моменту: «18: 30Z», «22: 30 + 04», «1130−0700» и «15: 00-03: 30" . Буквы часового пояса не используются, за исключением Z. Для расчета времени UT C необходимо вычесть смещение из местного времени, например, для «15: 00–03: 30» до 15:00 - (−03 : 30), чтобы получить 18:30 UT C.

К сожалению, ISO-8601 говорит об этом как о часовом поясе, когда это только смещение UT C - это определенно не указывает фактический часовой пояс. (Так, например, вы не можете сказать, какое местное время будет на минуту позже.)

...