【发布时间】:2019-06-24 20:49:02
【问题描述】:
如果您指定该时区的IANA 给定名称,Javascript 允许您查看另一个时区的时间。例如:
new Date().toLocaleString("en-US", {timeZone: "America/Chicago"});
您可以在下面看到 IANA 在每个通用时区提供多个名称:
America/New_York Eastern (most areas)
America/Detroit Eastern - MI (most areas)
America/Kentucky/Louisville Eastern - KY (Louisville area)
America/Kentucky/Monticello Eastern - KY (Wayne)
America/Indiana/Indianapolis Eastern - IN (most areas)
America/Indiana/Vincennes Eastern - IN (Da, Du, K, Mn)
America/Indiana/Winamac Eastern - IN (Pulaski)
America/Indiana/Marengo Eastern - IN (Crawford)
America/Indiana/Petersburg Eastern - IN (Pike)
America/Indiana/Vevay Eastern - IN (Switzerland)
America/Chicago Central (most areas)
America/Indiana/Tell_City Central - IN (Perry)
America/Indiana/Knox Central - IN (Starke)
America/Menominee Central - MI (Wisconsin border)
America/North_Dakota/Center Central - ND (Oliver)
America/North_Dakota/New_Salem Central - ND (Morton rural)
America/North_Dakota/Beulah Central - ND (Mercer)
America/Denver Mountain (most areas)
America/Boise Mountain - ID (south); OR (east)
America/Phoenix MST - Arizona (except Navajo)
America/Los_Angeles Pacific
America/Anchorage Alaska (most areas)
America/Juneau Alaska - Juneau area
America/Sitka Alaska - Sitka area
America/Metlakatla Alaska - Annette Island
America/Yakutat Alaska - Yakutat
America/Nome Alaska (west)
America/Adak Aleutian Islands
Pacific/Honolulu Hawaii
为什么需要这样做?
例如,America/Detroit 和 America/New_York(通常)都在东部时区。为什么这两个位置不共享一个 IANA 时区名称?
一年中纽约的时间是否与底特律的时间不同?
如果不是,那么为什么允许时区名称多于实际差异数?
【问题讨论】:
-
“数据库中的每个主要条目都代表一组自 1970 年以来一致同意的民用时钟的时区。时区通常由大陆或海洋标识,然后由该地区最大的城市包含时钟..." 来源:IANA -> Sources for time zone and daylight saving time data
-
这些时区之间可能存在历史差异和/或仍然存在差异。 DST 和/或将来可能再次存在差异。我不确定这完全是否方便。
-
@marekful - 名称不仅指偏移量,而是指偏移量、转换日期/时间和缩写的完整集一个特定地区的文明时代已经过去。此外,不一定要选择最近的城市,而是必须知道哪个城市与同一当地时间一致。考虑一个靠近地缘政治边界的城市可能与更远的内陆城市的时间一致,而不是边界对面的城市。
-
@LonnieBest - 不,你不能安全地假设。您必须将每个条目视为唯一的实体。如果您想知道它们何时对齐以及何时不同,那么您要么必须举例说明来源,要么编写代码来寻找差异。还有像timeanddate.com 这样的网站可以帮助您更轻松地挖掘细节。
-
它甚至不是轻微为了方便。人们经常问为什么他们最喜欢的城市没有自己的区域,答案是它不会包含与(不是用户最喜欢的城市)不同的数据。
标签: javascript timezone timezone-offset ecmascript-next