2014-01-30 165 views
3

我使用TimeZoneInfo.ConvertTime方法將源時區轉換爲目標時區。這對我來說很好。我想知道,如果夏令時已更改爲目標TimeZone,它將在.Net 4.0中自動處理。TimeZoneInfo和夏令時

以下是我用於轉換的代碼。

TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, timeZoneInfo) 
+0

你爲什麼不自己嘗試一下? – MarcinJuraszek

回答

4

是的,TimeZoneInfo.ConvertTime儘可能地處理夏令時。

但是,請注意,如果您使用的是DateTime有一種「未指定」(例如,具有從字符串解析的話),可能是在你的源時區曖昧。 (例如,如果時鐘從凌晨2點回到凌晨1點,那麼上午1點30分會在當天發生兩次)。DateTime.Now應該不成問題,因爲「本地」類型實際上可以是「本地的」,而且較早的模棱兩可時代「或」本土和後來的模棱兩可的時代「。

如果您想對轉換進行更多控制 - 以及具有更多描述類型,您可能需要查看我的Noda Time庫。