如何获取正确的时区偏移量(夏令时内外)



我从一个网站上找到了以下代码(对不起,我现在不记得该网站以供参考(,但是,它为我的计算机提供了当前的时区偏移量。 例如,此代码:

Dim plusminus As String = If((tz.Hours > 0), "+", "-")
Dim NewTimeZone As String = String.Format("{0}{1:00}:{2:00}", plusminus, Math.Abs(tz.Hours), tz.Minutes)

给了我"+09:30"作为输出。 这很完美。 但是,由于夏令时已经生效,相同的代码现在给了我"+10:30",这实际上是不正确的。

有人可以提出一种更好的方法来正确检索偏移量(在夏令时内外(并以相同的格式返回(+09:30(

提前致谢

如果我理解正确,您想找到 UTC 和当前时间之间的差异,而不考虑任何夏令时?

如果我是对的,那么以下内容将做你想要的:

Dim tzi As TimeZoneInfo = TimeZoneInfo.Local
Dim offset As TimeSpan = tzi.BaseUtcOffset
Dim plus As String = If(offset.TotalMinutes >= 0, "+", "")
Dim newTimeZone As String = String.Format("{0}{1:00}:{2:00}", plus, offset.Hours, offset.Minutes)

输出+00:00在我的机器上(我的本地时间是 UTC+1,但我们目前处于夏令时(

相关内容

  • 没有找到相关文章