2

我们的数据库记录了许多“生产设施”。每个设施都有地址、名称和最重要的时区。如何找出时区的名称?

我们最初的设施很明显,因为代码是以我们的城市(美国/埃德蒙顿)命名的。如何通过调用DateTimeZone.forID("timeZone") ex DateTimeZone.forID("America/Edmonton") 更一般地确定要在 Java 中使用的正确时区代码?

具体来说,我们正在佐治亚州亚特兰大开设一家工厂,但我不确定要使用哪个代码?是其中之一吗?

  1. “大西洋/South_Georgia”
  2. 美国/东部”
  3. “EST5EDT”
  4. “美东时间”
4

4 回答 4

1

你可以得到一个列表:

for (String string : TimeZone.getAvailableIDs(TimeZone.getTimeZone(
    "GMT-05:00").getRawOffset())) {
System.out.println(string);
}

它将包括(除其他外)“美国/东部”。

于 2012-10-18T19:27:59.350 回答
1

这种信息可能真的很棘手(更不用说很难保持最新状态)。它实际上可以因县而异(有一个很棒的西翼场景:)。Google Maps API 最近支持从lat+lon 到 TimeZone

于 2012-10-18T19:21:14.280 回答
1

东部时间的IANA 标准时区标识符America/New_York. 大概这是 Joda 使用的标准时间,因为(1)每个人都使用它,并且(2)城市名称作为标识符会泄露它。

于 2012-10-18T19:15:24.860 回答
0

您可以使用此方法列出可用的时区 ID:http: //docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html#getAvailableIDs ()

时区数据似乎来自这个数据库: http ://en.wikipedia.org/wiki/Tz_database

您可以在这里进行查找:http: //twiki.org/cgi-bin/xtra/tzdatepick.html

于 2012-10-18T19:16:31.100 回答