我有一段代碼檢查時間,然後根據夏令時值添加小時。爲什麼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