为什么IsDaylightSavingTime返回不同​​的值?

时间:2010-11-02 21:48:48

标签: asp.net vb.net dst

我有一段代码可以检查时间,然后根据夏令时值增加小时数。

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

我遇到的问题是IsDaylightSavingTime在生产服务器上的行为与在开发时的行为不同。

在开发服务器上,大小写为TRUE,但在生产中它是错误的。

两台服务器都运行相同的操作系统,并且都运行.NET 3.5

我可以向SA提供哪些信息以帮助解决我的问题?

更新

生产服务器位于亚利桑那州,这是一个不遵守DST的州。我只关心知道某个日期/时间是美国其他地区的DST确实观察到它。

以下是我解决问题的方法:

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

我的应用程序只处理位于美国的地点,所以这应该可以解决问题。

2 个答案:

答案 0 :(得分:2)

夏令时根据服务器的区域设置计算。您的开发箱可能与您的生产箱有不同的区域设置。

答案 1 :(得分:1)

希望这会奏效:

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

祝你好运!