.net - 如何获取正确的时区偏移(夏令时和夏令时之外)

标签 .net vb.net timezone dst

我从网站上找到了以下代码(抱歉,我现在不记得该网站以供引用),但是,它为我提供了计算机的当前时区偏移量。例如,这段代码:

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,但目前处于夏令时)

关于.net - 如何获取正确的时区偏移(夏令时和夏令时之外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19289159/

相关文章:

vb.net - .Net TrackMouseEvent 不适用于子菜单项

asp.net - 获取 ContentPlaceHolder asp.net 中的控件

elasticsearch - elasticsearch 现在的时区

javascript - 完整日历 "Time Zone Demo"示例

c# - .NET 类型推断 : can't infer usage of "T GetValue<T>(T defaultValue = default(T))"?

c# - 在多个 C# 类之间共享属性

c# - 按不同的对象排序并转换不同的对象

c# - Azure 云服务上服务网站的相对路径

asp.net - 从中继器数据绑定(bind)数据设置用户控件的属性

MySQL NOW() 似乎可以正确地与我的机器上的本地日期时间进行比较,但在部署时却不能