Runtime: Часовые пояса и DateTimeOffset

Созданный на 27 нояб. 2019  ·  1Комментарий  ·  Источник: dotnet/runtime

_Эта проблема была перемещена из заявки в сообществе разработчиков ._


В настоящее время DateTimeOffset отсутствует в параметрах преобразования часовых поясов, а API Windows для TimeZoneInfo не поддерживает DateTimeOffset.

это приводит к необходимости писать код для преобразования смещения даты и времени в дату и время, а затем использовать TimeZoneInfo для преобразования в новое Datetime, а затем обратно в DateTimeOffset, чтобы сохранить предполагаемый момент времени и часовой пояс.

этот набор преобразований между форматами и связанных вызовов API создает вероятность ошибок в преобразовании, которые может быть нелегко обнаружить, если разработчик не полностью разбирается в деталях часовых поясов.

Я думаю, что будет создан новый набор методов или новая библиотека классов, которые объединят TimeZoneInfo и DateTimeOffset, чтобы позволить разработчику запросить преобразование datetimeoffset в новый часовой пояс и не включать в цепочку преобразований. это уменьшит количество ошибок и упростит использование DateTimeOffset для большинства разработчиков.


Исходные комментарии

Денни Фигуэррес, 15.03.2019, 08:16:

также DateTimeOffset ToLocal предполагает дату, время / часовой пояс сервера, который не дает никакой возможности преобразовать часовой пояс пользователя для приложения в Интернете, клиент может находиться в другом часовом поясе, чем клиент браузера.

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

Джейн Ву [MSFT] 18.03.2019, 01:36:

Спасибо, что нашли время предоставить свое предложение. Мы проведем некоторые предварительные проверки, чтобы убедиться, что мы можем продолжить. Мы предоставим обновление, как только группа разработчиков продукта решит проблему.

api-needs-work api-suggestion area-System.Runtime

Самый полезный комментарий

также DateTimeOffset ToLocal предполагает дату, время / часовой пояс сервера, который не дает никакой возможности преобразовать часовой пояс пользователя для приложения в Интернете, клиент может находиться в другом часовом поясе, чем клиент браузера.

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

Этот. Вот почему DateTimeKind работает. Utc / Local / Unknown (или Other в аналогичных API) показывают неправильное понимание домена.

Я повторю, что мы должны предоставить полный, современный API даты / времени, который будет похож на java.time и NodaTime.
Обратите внимание, что в большинстве случаев DateTimeOffset также не является правильным типом домена, поскольку неабсолютно-мгновенная информация обычно лучше записывается как DateTimeZoned (который автоматически обновляет смещение при добавлении в любое время).

>Все замечания

также DateTimeOffset ToLocal предполагает дату, время / часовой пояс сервера, который не дает никакой возможности преобразовать часовой пояс пользователя для приложения в Интернете, клиент может находиться в другом часовом поясе, чем клиент браузера.

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

Этот. Вот почему DateTimeKind работает. Utc / Local / Unknown (или Other в аналогичных API) показывают неправильное понимание домена.

Я повторю, что мы должны предоставить полный, современный API даты / времени, который будет похож на java.time и NodaTime.
Обратите внимание, что в большинстве случаев DateTimeOffset также не является правильным типом домена, поскольку неабсолютно-мгновенная информация обычно лучше записывается как DateTimeZoned (который автоматически обновляет смещение при добавлении в любое время).

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

aggieben picture aggieben  ·  3Комментарии

matty-hall picture matty-hall  ·  3Комментарии

btecu picture btecu  ·  3Комментарии

GitAntoinee picture GitAntoinee  ·  3Комментарии

jamesqo picture jamesqo  ·  3Комментарии