Когда вы предпочитаете DateTime Over DateTimeOffset
Несколько месяцев назад я познакомился с новым типом DateTimeOffset
и был рад DateTime
были устранены недостатки в отношении часовых поясов.
Однако мне было интересно узнать, есть ли какие-либо издержки или проблемы, которые могут возникнуть при использовании этого нового типа.
Я работаю над многоязычным веб-приложением. Кто-нибудь знает что-нибудь, что может повлиять на то, что я просто использую его для всей моей работы по дате/времени? Здесь есть окно для злоупотреблений?
Ссылка: DateTimeOffset: новая структура DateTime в .NET 3.5 от Justin Van Patten
Ответы
Ответ 1
Иногда вы просто хотите представить дату и время "local" (timezone unaware), а не мгновенное время. Честно говоря, чаще всего полезно представлять только время - например, "разбудите меня в 8 утра, независимо от часового пояса" - но дата и время тоже могут быть полезны.
Я согласен, что для подавляющего большинства случаев DateTimeOffset
лучше подходит. Мне кажется странным, что нет структуры DateTimeTimeZone
, которая имеет как мгновенный, так и часовой пояс, хотя... смещение фактически не дает вам всю необходимую информацию. (Например, учитывая DateTimeOffset
, вы не знаете, какое время будет 24 часа спустя, потому что вы не знаете, когда может произойти DST.)
Если вы хотите такую структуру, у меня есть очень грубая реализация в другом ответе. Я уверен, что его можно было бы очень легко улучшить:)
Ответ 2
Хорошо, один очевидный ответ будет заключаться в том, что вам нужно поддерживать клиентов без пакета SP, который он отправляет (он фактически не находится в 3.5 - он находится в 2.0 SP1, который отправляется одновременно).