Когда вы предпочитаете 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, который отправляется одновременно).