在日光节省期间自动将GMT自动转换为BST

  • 本文关键字:GMT 转换 BST 日光 节省 c#
  • 更新时间 :
  • 英文 :


我当前正在将当前系统时间转换为英国时间(GMT)。

DateTime currentSystemTime = DateTime.UtcNow;
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
DateTime currentUKTime = TimeZoneInfo.ConvertTime(currentSystemTime, timeZoneInfo);

,但似乎英国在3月至OCT和GMT的剩余时间里都使用了BST。如何在代码中处理此操作以在日光节省和GMT期间自动使用BST,而不是在日光节省的情况下?

谢谢souvik

我相信,当您提供时区信息时,DateTime对象已经自动处理这是自动处理的,但是最好使用方法 converttime fimeftimefromutc 。p>您可以通过运行此代码进行检查,该代码将一些UTC日期转换为GMT日期时间:

Dim tzi As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time")
Dim dt1 As DateTime = DateTime.Parse("01/01/2015 8:00")
Dim dt2 As DateTime = TimeZoneInfo.ConvertTimeFromUtc(dt1, tzi)
Dim dt3 As DateTime = DateTime.Parse("06/06/2015 8:00")
Dim dt4 As DateTime = TimeZoneInfo.ConvertTimeFromUtc(dt3, tzi)
Assert.IsFalse(dt2.IsDaylightSavingTime)  //January is not saving daylight
Assert.IsTrue(dt4.IsDaylightSavingTime)  //June is
dt2.ToString()  //This returns "01/01/2015 08:00:00"
dt4.ToString() //This returns "06/06/2015 09:00:00"

参考:https://msdn.microsoft.com/en-us/library/ms973825.aspx#datetime_topic6

最新更新