Если DateTime хранятся в UTC или местное время (сервера) в веб-сайте, который доступен во всем мире

Что является влиянием системы как корзина, в которой один клиент (покупатель) сидит в одном часовом поясе, и другой (продавец) находится на другом часовом поясе, и дата изменяется в одном конце. таким образом, данные отчета для одного клиента, который купил, отличаются, чем другой?

9
задан Cœur 6 August 2017 в 14:34
поделиться

5 ответов

Если он представляет точку времени, вы обязательно должны использовать UTC. Это звучит как правильный выбор в этом конкретном случае.

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

Один конкретный пример того, почему стоит хранить точки во времени в UTC, заключается в том, что местные времена могут быть неоднозначными из-за летних переходов - если часы возвращаются с 2 утра до 1 утра, будет местное время 1:30 дважды. В UTC такая двусмысленность нет.

12
ответ дан 4 December 2019 в 11:05
поделиться

UTC навсегда! Серьезно, это означает, что вам не нужно беспокоить с ночной сбережениями (или местными достопримечательностями) в вашей модели, только в поле зрения.

4
ответ дан 4 December 2019 в 11:05
поделиться

Я думаю, что хранится не является самой большой проблемой, наиболее важным является при установке некоторого клиента, такого как веб-сайт, API ... и т. Д., Вы должны отправить как формат UTC + 0, возможно, длительный тип лучше?

1
ответ дан 4 December 2019 в 11:05
поделиться

Мы широко используем этот образец в нашей кодовой базе, и я видел его по всему месту раньше - я уверен, что он также обсуждался здесь. Вообще я не вижу, что не так с этим делать, это дает полезный образец и не причиняет никакого реального вреда.

-121--719252-

Я не думаю, что это обязательно. IDisposable технически предназначен для использования для вещей, которые имеют неуправляемые ресурсы, но тогда директива об использовании является просто аккуратным способом реализации общей модели try.. окончательно {утилизировать} .

Пурист будет утверждать «да - это оскорбительно», и в пуристском смысле это так; но большинство из нас кодирует не с пуристской точки зрения, а с полухудожественной. Использование конструкции 'using' таким образом, на мой взгляд, является довольно художественным.

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

Есть много других альтернатив для этого, но, в конечном счете, я не могу думать ни о чем, что будет так аккуратно, как это, так что идите!

-121--719246-

UTC. Я знаю пользователя на другом форуме, который хранил местное время с ПК конечного пользователя, и некоторые пользователи решили, что им не нужна автоматическая настройка для перехода на летнее и зимнее время. Им сейчас очень грустно.

1
ответ дан 4 December 2019 в 11:05
поделиться

Самый большой «Pro» использования UTC заключается в том, что если вы решите пойти с ним, вы всегда можете быть уверены, что даты хранятся таким образом, и никогда не должны сомневаться в себе. Это экономит много хлопот.

1
ответ дан 4 December 2019 в 11:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: