Почему IsDaylightSavingTime возвращает другое значение? - PullRequest
1 голос
/ 03 ноября 2010

У меня есть фрагмент кода, который проверяет время, а затем добавляет часы на основе значения летнего времени.

Dim CommentDateTime as Date = "11/2/2010 8:21:42 PM"
If CommentDateTime.IsDaylightSavingTime Then
   'do something
Else
   'do something else
End If

Проблема, с которой я столкнулся, заключается в том, что IsDaylightSavingTime ведет себя по-разному на рабочем сервере, чем при разработке.

На сервере разработки случай ИСТИНА, а на производстве - ложь.

На обоих серверах установлена ​​одна и та же ОС, и оба работают под .NET 3.5

Какую информацию я могу предоставить SA для решения проблемы?

UPDATE:

Производственный сервер находится в Аризоне, штат, который не соблюдает летнее время. Меня интересует только знание того, является ли определенная дата / время летним временем в остальной части США, которая его соблюдает.

Вот как я решил проблему:

If TimeZoneInfo.FindSystemTimeZoneById("Pacific StandardTime").IsDaylightSavingTime(CommentDateTime) Then
     'Do something
Else
     'Do something else
End If

Мое приложение имеет дело только с местами, расположенными в США, поэтому это должно сработать.

Ответы [ 2 ]

2 голосов
/ 03 ноября 2010

Летнее время рассчитывается на основе региональных настроек сервера. Возможно, у вашего устройства разработки другие региональные настройки, чем у вашего рабочего блока.

1 голос
/ 03 ноября 2010

Надеюсь, это сработает:

Dim CommentDateTime as Date = "11/2/2010 8:21:42 PM" TimeZone.CurrentTimeZone.IsDaylightSavingTime(CommentDateTime)

Удачи!

...