[英]Is there a way to make DateTime.IsDaylightSavingTime work on a machine with GMT/UTC time?
我試圖知道是否有辦法讓DateTime
對象在設置為GMT時間的操作系統上獲得所有正確的屬性。 不只是改變時間。
現在我正在做的是:
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時間。 我很樂意,但我不能。 :-)
如果Kind為Local或Unspecified,則DateTime.IsDayLightSavingTime返回true,並且此DateTime實例的值在當前時區的夏令時范圍內
即DateTime對象檢查系統時區,因為UTC不支持夏令時,它返回true。
如果要驗證,如果指定的時間屬於時區的夏令時,則在TimeZoneInfo中使用IsDayLightSavingTime方法
DateTime f = new DateTime(2012, 8, 1); //A date on summer
TimeZoneInfo tzf2=TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time");
DateTime f2 = TimeZoneInfo.ConvertTime(f, tzf2);
var isSummer = tzf2.IsDaylightSavingTime(f2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.