我有一段代码检查时间,然后根据夏令时值添加小时。为什么IsDaylightSavingTime返回不同的值?
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哪些信息来帮助解决我的问题?
UPDATE:
生产服务器是在美国亚利桑那州,不遵守DST的状态。我只关心在美国其他地区观察它是否有某个日期/时间是DST。
以下是我固定的问题:
If TimeZoneInfo.FindSystemTimeZoneById("Pacific StandardTime").IsDaylightSavingTime(CommentDateTime) Then
'Do something
Else
'Do something else
End If
我的应用程序只与位于美国的地点交易,所以这应该做的伎俩。
这听起来好像不是一个编码问题,但是你的TimeZone设置在不同的机器上是不同的。你可能想在ServerFault上询问这个问题(并且总结一下代码在那里做什么而不是在那里发布)。 – 2010-11-02 21:55:15
阅读有关如何转换为协调世界时(UTC)的文章http://msdn.microsoft.com/en-us/library/bb397769%28VS.90%29.aspx以及如何处理夏令时时间问题http://msdn.microsoft.com/en-us/library/ms973825.aspx#datetime_topic6 – 2010-11-02 22:06:43
@Tim - 感谢您的建议。这实际上是我已经在做的事情,并且我已经在我测试的所有服务器上正常工作,直到我将代码移至AZ中的生产服务器。 AZ不遵守DST,因此无论我放入什么日期,IsDaylightSavingTime都将始终返回false。 – zeroef 2010-11-03 16:13:53