在哪里可以找到一个以表格形式列出时区的列表?

13
我正在寻找一个包含时区列表的表格,就像这个链接所展示的一样:http://en.wikipedia.org/wiki/ISO_3166-1。我需要时区代码(例如PST、PDT、EST、GMT、UTC)、名称(例如太平洋标准时间)和与协调世界时的偏移量(例如,在太平洋日光节约时间使用时偏移量为-7)。
我已经进行了大约十分钟的谷歌搜索,但没有找到这个表格。有人知道在哪里可以找到吗?

5
请记住,“时区代码”通常是不明确的。例如,“EST”可能是UTC+10,UTC-3或UTC-5。有时建议使用“区域/位置”格式,比如在http://en.wikipedia.org/wiki/List_of_tz_zones中。 - user1686
1
供未来参考...PHP提供本地时区函数:http://us.php.net/manual/en/datetimezone.listidentifiers.php - Chad Johnson
1
注意:虽然可以在各种地方找到这些类型的列表,但在应用程序中使用它们绝不是一个好主意。时区会发生变化,而且必须维护列表。此外,使用列表进行计算并不容易,因为您必须考虑夏令时转换日期和历史更改。请改用平台或库,例如Java和PHP的本机支持,Python中的pytz,.NET中的Noda Time或TimeZoneInfo等。不要依赖于在互联网上找到的列表,即使是在维基百科上也是如此。 - Matt Johnson-Pint
2
有趣的是,当大约20,000人查看了这个问题时,有人投票关闭它。 - Chad Johnson
如果您关心权威资源,请从这里开始:https://www.iana.org/time-zones - vhs
4个回答

9

请直接链接到规范和权威资源。 - vhs

8

那么http://www.timeanddate.com/library/abbreviations/timezones/呢?

或者,从我的系统中:

var sb = new StringBuilder();

foreach(var tzi in TimeZoneInfo.GetSystemTimeZones())
{
   sb.AppendFormat("   * {0} | {1} | {2} | {3} | {4} | {5}", 
                   tzi.Id, 
                   tzi.BaseUtcOffset.TotalHours, 
                   tzi.StandardName, 
                   tzi.DisplayName, 
                   tzi.DaylightName, 
                   tzi.SupportsDaylightSavingTime);
   sb.AppendLine();
}

3
警告:上述代码列出的是Windows时区,与IANA列表相比准确性和完整性都要差得多。要获取两个列表(Windows和/或IANA)在.Net中,您可以使用NODA库(可在nuget上获得)。 - gentiane
请使用“详情”减少答案长度或截断输出。 - vhs

3

没有“官方”的时区名称。UTC+/-偏移量是最接近的名称。但是,除了Joseph的回答之外,这个常见时区名称和缩写表也许会有所帮助。请记住,缩写不会是唯一的(例如,有多个EST时区)。


1
在美国,边界是在当地一级——按县划分的。保留地可以随心所欲地使用它们自己的时区。 - S.Lott
2
啊,是的。我为那些被指派将经纬度映射到时区的人感到难过。 - Michael Petrotta

-2
我找不到好的列表,所以我自己做了一个: http://pastebin.com/Bpc3eNk9 只需执行MySQL代码,您就可以在名为“tz”的表中获得您的列表。

请注意,时区列表并非静态的。您的列表缺少一些最近添加的时区,例如Antarctica/Troll。 - Mikko Rantalainen
如果有关于相对于格林威治的正负小时的信息,那将是一个很好的答案。 - ryzhman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接