Создайте для DateTimeOffset значение Midnight в другом часовом поясе с сервера - PullRequest
3 голосов
/ 12 января 2011

У меня установлен сервер на EST, и мне интересно, что мне нужно сделать, чтобы создать для DateTimeOffset значение Midnight текущего дня, но в другом часовом поясе?Например PST?

1 Ответ

6 голосов
/ 12 января 2011
  • Получите соответствующие TimeZoneInfo.
  • Создайте DateTime, который содержит местное время (т.е. полночь)
  • Вызов TimeZoneInfo.GetUtcOffset, чтобы найти смещение от UTC
  • Построить DateTimeOffset с местным временем и смещением

(Если Noda Time были производственнымиЯ уже предложил бы создать ZonedDateTime с использованием этого, но, к сожалению, мы еще даже не близки к готовности к v1 ... хотя на самом деле нужные вам биты, вероятно, достаточно стабильны:)

Стоит отметить, что «полночь текущего дня» не всегда существует во всех часовых поясах.Если вам, возможно, придется иметь дело с часовыми поясами, которые имеют переход на летнее время в полночь, вы можете посмотреть TimeZoneInfo.IsAmbiguousTime и TimeZoneInfo.IsInvalidTime.

...