Какой часовой пояс представляет часть времени строки DateTime вместе со смещением? - PullRequest
0 голосов
/ 22 января 2020

У меня строка DateTime как 2020-01-21T16:17:01.2202038-05:00, я хотел бы знать, 16:17:01.2202038 представляет местное время или UT C время? Как я могу сохранить местное время в C#?

Ответы [ 2 ]

5 голосов
/ 22 января 2020

Смещение составляет -05:00, что означает, что указанная дата и время (2020-01-21T16:17:01.2202038) отстают на 5 часов от UT C. Другими словами, это местное время некоторого часового пояса, которое в этот момент времени составляет UT C -5.

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

In. NET, вам гораздо лучше представлять такие данные с типом DateTimeOffset, а не с типом DateTime.

Кстати, этот формат определен как часть ISO 8601 и RF C 3339 технические характеристики.

1 голос
/ 22 января 2020

Значение DateTime не имеет данных смещения TZ . Он имеет флаг для «локальный» или «UTC» (или не указан). Смотрите свойство DateTime.Kind. Внутри фактическое значение DateTime является смещением от UT C, сохраняемым независимо от вида.

Если (не-0) TZ равен , отображается когда DateTime преобразуется в строку, DateTime представляет локальное смещение TZ и местное время TZ .

Это смещение TZ рассчитывается по - на лету в зависимости от фактического значения DateTime и текущих настроек компьютера (действительно потока) Например, он будет изменять смещения «автоматически» в зависимости от того, указана ли дата в стандартном или летнем времени. * Поскольку расчет выполняется с ограниченными данными (отметки от UT C и флажок), TZ не обязательно является «честным» во всех отношениях. Сдвиг TZ: правильное абсолютное время в UT C, но текущее смещение TZ может измениться, так как оно рассчитывается для текущих активных настроек .

* Исторические смещения могут быть неточными, если эти правила менялись несколько раз, так как реализации обычно хранят столько истории.

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