.NET 中的“美国东部标准时间”与“东部标准时间”

Posted

技术标签:

【中文标题】.NET 中的“美国东部标准时间”与“东部标准时间”【英文标题】:"US Eastern Standard Time" vs "Eastern Standard Time" in .NET 【发布时间】:2012-07-12 12:15:12 【问题描述】:

在列出TimeZoneInfo.GetSystemTimeZones 返回的TimeZoneInfos 的所有Id 属性时,会出现两个版本的EST:美国东部标准时间和东部标准时间。有什么区别?

我也看到了美国山地标准时间和山地标准时间,但我很确定这是因为美国版本适用于不遵守 DST 的亚利桑那州。我假设常规山区标准时间适用于山区时区的美国其他州。我说的对吗?

有关美国时区的有用链接:http://www.timetemperature.com/tzus/time_zone.shtml

【问题讨论】:

【参考方案1】:

这些时区的显示名称有助于解释这种混淆

Timezone name Display name Observes DST Offset from UTC in the summer
Eastern Standard Time (UTC-05:00) Eastern Time (US & Canada) Yes -04:00
US Eastern Standard Time (UTC-05:00) Indiana (East) Yes -04:00
Eastern Standard Time (Mexico) (UTC-05:00) Chetumal No -05:00
Mountain Standard Time (UTC-07:00) Mountain Time (US & Canada) Yes -06:00
US Mountain Standard Time (UTC-07:00) Arizona No -07:00
Mountain Standard Time (Mexico) (UTC-07:00) Chihuahua, La Paz, Mazatlan Yes -06:00
“美国东部标准时间” 仅适用于印第安纳州的(部分)地区(直到 2005 年能源政策法案,该法案于 2007 年更改了印第安纳州的时区)。今天与“东部标准时间”相同 “美国山区标准时间”不遵守夏令时,而“山区标准时间”的其余部分则遵守。

【讨论】:

【参考方案2】:

“美国东部标准时间”是指印第安纳州大部分地区的时区,在 2007 年之前没有实行夏令时。同样,“加拿大中部标准时间”用于萨斯喀彻温省,“美国山区标准时间”用于亚利桑那州,仍然没有遵守 DST。

时区 ID 的分配方式有点不合逻辑。例如,提到的“无 DST”版本开曼群岛被称为“SA 太平洋标准时间”(SA = 南美洲,如果您查看时区地图,您会发现 -05:00 偏移适用于南美洲西海岸的哥伦比亚、厄瓜多尔和秘鲁)

另一个时区 ID 示例“格林威治标准时间”指的是冰岛使用的时区,即 UTC+00:00 全年无夏令时,而“GMT 标准时间”指的是英国时区确实有夏令时。

每个时区对应于您可以从时区控制面板中选择的菜单项之一。 This MSDN page shows the correspondence between the text in the menu and the actual timezone ID:

010  Mountain Standard Time         (GMT-07:00) Mountain Time (US and Canada)
013  Mexico Standard Time 2         (GMT-07:00) Chihuahua, La Paz, Mazatlan
015  U.S. Mountain Standard Time    (GMT-07:00) Arizona
020  Central Standard Time          (GMT-06:00) Central Time (US and Canada)
025  Canada Central Standard Time   (GMT-06:00) Saskatchewan
030  Mexico Standard Time           (GMT-06:00) Guadalajara, Mexico City, Monterrey
033  Central America Standard Time  (GMT-06:00) Central America
035  Eastern Standard Time          (GMT-05:00) Eastern Time (US and Canada)
040  U.S. Eastern Standard Time     (GMT-05:00) Indiana (East)
045  S.A. Pacific Standard Time     (GMT-05:00) Bogota, Lima, Quito
085  GMT Standard Time              (GMT) Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London
090  Greenwich Standard Time        (GMT) Casablanca, Monrovia

【讨论】:

TLDR; Eastern Standard Time 是正确的 注意,给出的链接仅适用于 Windows Embedded 1.1 (2006)。没有列出所有可用时区的静态页面,因为它们可以随着更新的应用而改变。相反,在命令行上使用tzutil /l 列出计算机上安装的那些。或者,在 .NET 中使用 TimeZoneInfo.GetSystemTimeZones() 所以答案是美国东部标准时间仅适用于印第安纳州?他们为什么不把它称为印第安纳东部标准时间呢?亚利桑那州和美国山区标准时间是否一样?

以上是关于.NET 中的“美国东部标准时间”与“东部标准时间”的主要内容,如果未能解决你的问题,请参考以下文章

每天在美国东部标准时间下午5点运行cron脚本[重复]

美国东部标准时间 11 月 4 日至 5 日的夏令时问题

如何在特定时间触发hybris中的cronjob

Linux系统时区不对怎么办

mysql 时间 和 系统时间 不一致

Meetup 对抗长时间 DDoS 攻击