2011-06-11 9 views
2

Если вы работаете только с датами и без времени, было бы разумным сохранить все ваши даты в UTC для приложения с несколькими часовыми поясами?Хранение DateTime в UTC

ответ

3

Предлагаю использовать DateTimeOffset - это позволяет хранить как DateTime, так и UTC-смещение.

Кроме того, читайте this SO вопрос о лучших практиках часового пояса.

+0

Сохраните ли вы смещение UTC клиента? – adriaanp

+0

@adriaanp - Для приложения с чувствительным к часовому поясу, да. – Oded

+0

Я смущаюсь этим. Допустим, клиент вступил 6/11/2011, затем я сохраняю 6/11/2011 12:00:00 AM -07: 00 (часовой пояс клиента). Если смещение UTC сервера равно +02: 00, и я хочу запросить даты, я должен использовать DateTimeOffset.Now или DateTimeOffset.Now.Date? – adriaanp

3

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

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