如何检查指定时区的 DST 状态
How to check DST status for specified timezones
我想检查是否有任何指定的时区(我的本地时区除外)是否处于夏令时。
要检查本地时区当前是否为 DST,我正在使用:
Dim today_date As Date = Now.Date
Msgbox(today_date.IsDaylightSavingTime())
我想根据今天的日期检查其他时区("A.U.S. Eastern Standard Time" 和 "New Zealand Standard Time")是否在夏令时。
那么到目前为止我有什么:
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
我想做的是输入一个日期(例如今天),看看这个日期是否符合澳大利亚东部标准时间。
您不应该为 日期 执行此操作,因为这可能是模棱两可的(标准时间是一天的开始,而夏令时是一天的结束,或者反之亦然)而是询问特定时间点是否在夏令时:
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
。
我想检查是否有任何指定的时区(我的本地时区除外)是否处于夏令时。
要检查本地时区当前是否为 DST,我正在使用:
Dim today_date As Date = Now.Date
Msgbox(today_date.IsDaylightSavingTime())
我想根据今天的日期检查其他时区("A.U.S. Eastern Standard Time" 和 "New Zealand Standard Time")是否在夏令时。
那么到目前为止我有什么:
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
我想做的是输入一个日期(例如今天),看看这个日期是否符合澳大利亚东部标准时间。
您不应该为 日期 执行此操作,因为这可能是模棱两可的(标准时间是一天的开始,而夏令时是一天的结束,或者反之亦然)而是询问特定时间点是否在夏令时:
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
。