Переход на летнее время в C # asp.net - PullRequest
3 голосов
/ 29 апреля 2011

Как проверить, подпадает ли определенный часовой пояс под "DAYLIGHTTIMEZONE" или нет, используя C # asp.net?

Если часовой пояс подпадает под "DAYLIGHTTIMEZONE", следует ли мне переходить на стандартный часовой пояс?

Я получу часовой пояс (список часовых поясов в ОС Windows) как ввод от пользователя и сохраню его в базе данных, всякий раз, когда пользователь входит в систему, я буду отображать время и дату на основе часового пояса, выбранного пользователем.Какую роль здесь играет летнее время?Следует ли вносить какие-либо изменения, если определенный часовой пояс подпадает под "DaylightsavingZone".

Ответы [ 2 ]

7 голосов
/ 29 апреля 2011

Используйте класс TimeZoneInfo, представленный в .NET 3.5.

Неясно, какова ваша большая цель, но в основном TimeZoneInfo должно охватывать все, что вы пытаетесь сделать, например, переходить из одного часового пояса в другой. Это не всегда самый простой класс для правильного использования, отчасти потому, что, к сожалению, тип DateTime плохо спроектирован для начала: (

Я работаю (иногда!) Над новой библиотекой даты и времени для .NET под названием Noda Time , но, к сожалению, она еще не готова: (

РЕДАКТИРОВАТЬ: Хорошо, поэтому ваши шаги должны быть:

  • Узнайте, как получить часовой пояс от пользователя в соответствующей форме для TimeZoneInfo. В конечном итоге вы захотите сохранить Id в базе данных.
  • Когда вы хотите отобразить время:
    • Получить часовой пояс, используя FindSystemTimeZoneById
    • Получить текущее время, используя DateTimeOffset.UtcNow
    • Позвоните TimeZoneInfo.ConvertTime, чтобы преобразовать в целевой часовой пояс
    • Форматировать результат соответствующим образом для пользователя
0 голосов
/ 29 апреля 2011

Я думаю, что вы ищете TimeZone.IsDaylightSavingTime

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...