我想知道是否有辦法讓DateTime
對象在設置爲GMT時間的操作系統上獲取所有正確的屬性。不只是改變時間。有沒有辦法讓DateTime.IsDaylightSavingTime在GMT/UTC時間的機器上工作?
現在即時通訊做的事情是:
DateTime f = new DateTime(2012, 8, 1); //A date on summer
DateTime f2 = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(f, TimeZoneInfo.Local.Id, "Central Europe Standard Time");
var isSummer = f2.IsDaylightSavingTime(); //It always returns false if the OS is on GMT
而且它改變了時間&日期,使GMT成爲中歐標準時間就好了,但IsDaylightSavingTime
功能無法正常工作。它總是返回false,因爲我在系統上使用了GMT,但我認爲它不應該是因爲我爲中歐創建了DateTime
。
有沒有辦法使DateTime
對象f2
真的是本地的,並且明白如果它的八月和歐洲中心它應該返回true而不是false?
我知道如果我在機器上使用本地時間,它會工作正常,但我不能更改服務器上的GMT時間。我很想去,但我不能。 :-)
當然可以用IsDayLightSavingTime方法,我要澄清我不是擔心八月,我不想讓我自己的功能知道是否是小時改變的確切日子。即使這樣,它依賴於位置,因爲我使用的數據是在不同時區的航班。 – H27studio 2012-01-10 17:12:13
相關:http://stackoverflow.com/q/2532729/1583 – Oded 2013-03-15 10:14:04