Предпочтения пользователя в часовом поясе на веб-сайте и сохранение даты и времени.Now

#c# #.net-core

#c# #.net-ядро

Вопрос:

Я создал средство на веб-сайте, чтобы каждый пользователь мог установить свои предпочтения в часовом поясе, и это предпочтение сохраняется в БД как общее смещение минут для этого города. например, 60 или -60 (смещение минут). Теперь я хочу сохранить дату и время пользователя.Теперь (для сообщения в блоге, которое он отправляет) вот так:

 DateTime.UtcNow.AddMinutes(OffsetMinutes);
  

Это правильно и нормально?

Комментарии:

1. Исправить для чего? Временные метки в ваших данных всегда должны устанавливаться сервером и всегда должны сохраняться как UTC. Отображение этих временных меток должно быть задачей интерфейса. Но даже тогда, пожалуйста, не пишите все это самостоятельно, в .NET уже есть классы для обработки этого.

2. @nvoigt Прочитал, что сохранение Utc Джона Скита не является серебряной пулей

3. @ZoharPeled Это интересное чтение (я сам в ЕС), но я думаю, что в данном случае речь идет не о датах в далеком будущем, а только о временных метках, которые находятся в непосредственном прошлом. Так что да, это не серебряная пуля, но это «достаточно хорошо» и, безусловно, лучше, чем предлагаемое решение, чтобы каким-то образом вычислять смещения самостоятельно.

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