EST与America / New_York时区的差异

时间:2012-03-25 20:13:47

标签: java calendar timezone

有人可以告诉我,以下两个陈述之间的区别是什么:

TimeZone.getTimeZone("America/New_York")

TimeZone.getTimeZone("EST")

换句话说,为什么EST与America / New_York不同。同样在我的应用程序中,要获取美国当前时区,我应该使用America / New_York还是EST。

2 个答案:

答案 0 :(得分:101)

EST是UTC - 5小时。 America / New_York在冬季是EST,在夏天是E * D * T,所以现在纽约是UTC - 4小时。

答案 1 :(得分:62)

EST实际上是纽约时区的一半。它在标准时间内始终 - 它没有夏令时部分。它本身并不是真正一个适当的时区,IMO - 它是更全面的时区的“标准”部分。当写一个时区只是一个固定的偏移并且与某个特定的地方无关时,我宁愿使用“Etc / GMT + 5”或类似的明显固定的东西。 (我通常不喜欢“东部时间”之类的东西,因为观察“东部时间”的不同地方的DST过渡可能会有所不同。这有点像调用编码“扩展ASCII”......它告诉你< em>一些信息,但还不够。)

因此,如果您想在任何特定时刻了解纽约的实际当地时间,请使用America / New_York。

一般情况下,请远离缩写。来自the documentation

  

为了与JDK 1.1.x兼容,还支持其他一些三字母时区ID(例如“PST”,“CTT”,“AST”)。但是,它们的使用已被弃用,因为相同的缩写通常用于多个时区(例如,“CST”可能是美国“中央标准时间”和“中国标准时间”),然后Java平台只能识别其中一个它们。

(就我个人而言,我还建议您远离DateCalendar,请尽可能使用Joda Time。但这确实是另一回事。)