#c# #.net-core
#c# #.net-ядро
Вопрос:
Я создал средство на веб-сайте, чтобы каждый пользователь мог установить свои предпочтения в часовом поясе, и это предпочтение сохраняется в БД как общее смещение минут для этого города. например, 60 или -60 (смещение минут). Теперь я хочу сохранить дату и время пользователя.Теперь (для сообщения в блоге, которое он отправляет) вот так:
DateTime.UtcNow.AddMinutes(OffsetMinutes);
Это правильно и нормально?
Комментарии:
1. Исправить для чего? Временные метки в ваших данных всегда должны устанавливаться сервером и всегда должны сохраняться как UTC. Отображение этих временных меток должно быть задачей интерфейса. Но даже тогда, пожалуйста, не пишите все это самостоятельно, в .NET уже есть классы для обработки этого.
2. @nvoigt Прочитал, что сохранение Utc Джона Скита не является серебряной пулей
3. @ZoharPeled Это интересное чтение (я сам в ЕС), но я думаю, что в данном случае речь идет не о датах в далеком будущем, а только о временных метках, которые находятся в непосредственном прошлом. Так что да, это не серебряная пуля, но это «достаточно хорошо» и, безусловно, лучше, чем предлагаемое решение, чтобы каким-то образом вычислять смещения самостоятельно.
4. Я думаю, что лучший способ, как было сказано, — хранить даты как UTC, а затем любым предпочтительным способом приводить эту дату к предпочтительному часовому поясу при отображении сообщений в блоге.