_Эта проблема была перемещена из заявки в сообществе разработчиков ._
В настоящее время DateTimeOffset отсутствует в параметрах преобразования часовых поясов, а API Windows для TimeZoneInfo не поддерживает DateTimeOffset.
это приводит к необходимости писать код для преобразования смещения даты и времени в дату и время, а затем использовать TimeZoneInfo для преобразования в новое Datetime, а затем обратно в DateTimeOffset, чтобы сохранить предполагаемый момент времени и часовой пояс.
этот набор преобразований между форматами и связанных вызовов API создает вероятность ошибок в преобразовании, которые может быть нелегко обнаружить, если разработчик не полностью разбирается в деталях часовых поясов.
Я думаю, что будет создан новый набор методов или новая библиотека классов, которые объединят TimeZoneInfo и DateTimeOffset, чтобы позволить разработчику запросить преобразование datetimeoffset в новый часовой пояс и не включать в цепочку преобразований. это уменьшит количество ошибок и упростит использование DateTimeOffset для большинства разработчиков.
также DateTimeOffset ToLocal предполагает дату, время / часовой пояс сервера, который не дает никакой возможности преобразовать часовой пояс пользователя для приложения в Интернете, клиент может находиться в другом часовом поясе, чем клиент браузера.
и браузеру может потребоваться увидеть дату для часового пояса, в котором он находится.
Спасибо, что нашли время предоставить свое предложение. Мы проведем некоторые предварительные проверки, чтобы убедиться, что мы можем продолжить. Мы предоставим обновление, как только группа разработчиков продукта решит проблему.
также DateTimeOffset ToLocal предполагает дату, время / часовой пояс сервера, который не дает никакой возможности преобразовать часовой пояс пользователя для приложения в Интернете, клиент может находиться в другом часовом поясе, чем клиент браузера.
и браузеру может потребоваться увидеть дату для часового пояса, в котором он находится.
Этот. Вот почему DateTimeKind
работает. Utc
/ Local
/ Unknown
(или Other
в аналогичных API) показывают неправильное понимание домена.
Я повторю, что мы должны предоставить полный, современный API даты / времени, который будет похож на java.time и NodaTime.
Обратите внимание, что в большинстве случаев DateTimeOffset
также не является правильным типом домена, поскольку неабсолютно-мгновенная информация обычно лучше записывается как DateTimeZoned
(который автоматически обновляет смещение при добавлении в любое время).
Самый полезный комментарий
Этот. Вот почему
DateTimeKind
работает.Utc
/Local
/Unknown
(илиOther
в аналогичных API) показывают неправильное понимание домена.Я повторю, что мы должны предоставить полный, современный API даты / времени, который будет похож на java.time и NodaTime.
Обратите внимание, что в большинстве случаев
DateTimeOffset
также не является правильным типом домена, поскольку неабсолютно-мгновенная информация обычно лучше записывается какDateTimeZoned
(который автоматически обновляет смещение при добавлении в любое время).