Разница между EST и Америкой / часовыми поясами Нью-Йорка - PullRequest
45 голосов
/ 26 марта 2012

Может кто-нибудь сказать, в чем разница между следующими двумя утверждениями:

TimeZone.getTimeZone("America/New_York")

и

TimeZone.getTimeZone("EST")

Другими словами, почему EST отличается от America / New_York.Также в моем приложении, чтобы узнать текущий часовой пояс в США, я должен использовать America / New_York или EST.

Ответы [ 2 ]

105 голосов
/ 26 марта 2012

EST - UTC - 5 часов. Америка / Нью-Йорк - EST зимой и E * D * T летом, поэтому сейчас в Нью-Йорке UTC - 4 часа.

62 голосов
/ 26 марта 2012

EST - фактически половина часового пояса Нью-Йорка.Это всегда в стандартное время - в нем нет летнего времени.Это не на самом деле собственно часовой пояс сам по себе, IMO - это «стандартная» часть более полного часового пояса.Когда пишете о часовом поясе, который является просто фиксированным смещением и не связан с конкретным местом, я бы предпочел использовать «Etc / GMT + 5» или что-то подобное, очевидно, фиксированное.(Мне вообще не нравится даже «восточное время» и т. П., Поскольку разные места, в которых наблюдается «восточное время», могут различаться по своим переходам DST. Это немного похоже на вызов кодировки «расширенный ASCII» ... это говорит вам некоторая информация, но не вполне достаточно.)

Поэтому, если вы хотите узнать фактическое местное время для Нью-Йорка в любой конкретный момент, используйте America / New_York.

В общем, держитесь подальше от сокращений.Из документации :

Для совместимости с JDK 1.1.x, некоторыми другими трехбуквенными идентификаторами часовых поясов (такими как "PST", "CTT", "AST")также поддерживаются.Однако их использование не рекомендуется, потому что одна и та же аббревиатура часто используется для нескольких часовых поясов (например, «CST» может быть «Центральное стандартное время США» и «Стандартное китайское время»), и тогда платформа Java может распознавать только одно изих.

(Лично я бы посоветовал вам держаться подальше от Date и Calendar, предпочитая использовать Joda Time везде, где это возможно. Это другой вопрос, хотядействительно.)

...