我想检查是否有任何指定的时区(我的本地时区除外)是否在DST中。
要检查当前时区当前是否正在使用DST:
Dim today_date As Date = Now.Date
Msgbox(today_date.IsDaylightSavingTime())
我想根据今天的日期检查其他时区(“A.U.S.东部标准时间”和“新西兰标准时间”)是否在夏令时。
所以我到目前为止:
Dim AusZoneId As String = "A.U.S. Eastern Standard Time"
Dim AusZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(AusZoneId)
MsgBox(AusZone.SupportsDaylightSavingTime)
'Established True or False if TZ supported DST
我想要做的是输入日期(例如今天)并根据AUS东部标准时间查看此日期是否在夏令时。
答案 0 :(得分:2)
你不应该为日期这样做,因为这可能是模棱两可的(标准时间的一天开始和白天时间的结束,反之亦然)而是询问特定时间点是否在白天:
Dim zoneId As String = "AUS Eastern Standard Time";
Dim zone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(zoneId)
Dim dst As Boolean = zone.IsDaylightSavingTime(DateTime.UtcNow)
(或者当然也可以使用其他一些时间点。)我强烈建议你传递DateTime
Kind
Utc
。