Ответ 1
EST - это половина часового пояса в Нью-Йорке. Это всегда в стандартное время - у него нет летней части. Это не совсем правильный часовой пояс, ИМО - это "стандартная" часть более полного часового пояса. Когда вы пишете о часовом поясе, который является фиксированным смещением и не связан с конкретным местом, я бы предпочел использовать "Etc/GMT + 5" или что-то подобное явно фиксированное. (Мне вообще не нравится даже "Восточное время" и т.п., Поскольку разные места, которые наблюдают "Восточное время", могут отличаться в своих переходах на летнее время. Это немного напоминает вызов кодировки "расширенный ASCII"... это говорит вам о некоторых информации, но не вполне достаточно.)
Поэтому, если вы хотите узнать точное местное время для Нью-Йорка в любой конкретный момент, используйте America/New_York.
В общем, держитесь подальше от аббревиатур. Из документация:
Для совместимости с JDK 1.1.x также поддерживаются некоторые другие трехбуквенные идентификаторы часовых поясов (такие как "PST", "CTT", "AST" ). Однако их использование устарело, поскольку такое же сокращение используется часто для нескольких часовых поясов (например, "КНТ" может быть "Центральным стандартным временем" США и "Китайским стандартным временем" ), и платформа Java может затем распознать только одну из их.
(Лично я также советую вам держаться подальше от Date
и Calendar
, предпочитая использовать Joda Time, где это возможно. На самом деле это другое дело.)