Краткий ответ : Нет, они не равны, потому что EST5EDT
не имеет истории изменений, через которые прошло Восточное время США.Вместо этого используйте America/New_York
, что делает.
Более длинный ответ:
EST5EDT
является определением часового пояса POSIX , которое можетиспользоваться в переменной среды TZ
во многих системах.Этот формат описан в Linux man tz
, и в документации GNU , а также в этой статье IBM .Все, что EST5EDT
говорит вам, это то, что стандартное время - UTC-5 с меткой EST
, а дневное время - UTC-4 и EDT
.Вот и все.
По мере развития компьютерных систем со временем стало очевидно, что часовые пояса POSIX не содержат достаточно информации для правильного отслеживания часовых поясов мира.Например, рассмотрим историю ТЛЧ в Соединенных Штатах , последнее изменение которой произошло в 2007 году, увеличив дневной период на 5 недель.Определения POSIX не могут представлять такие данные, что приводит к ошибкам в преобразованиях.
Таким образом, теперь предпочтительным механизмом является использование идентификаторов часовых поясов из базы данных IANA TZ вместо этого (также называемой «Олсон» или"ZoneInfo").В этой базе данных восточное время США представлено идентификатором America/New_York
.Он также имеет псевдоним US/Eastern
, и его можно использовать в большинстве библиотек (JavaScript, Python и т. Д.). Вы можете найти полный список идентификаторов здесь .
Вы можете заметить, что EST5EDT
появляется как один из идентификаторов, как и EST
, но не EDT
.Это артефакты истории из-за периода, когда определенные идентификаторы в базе данных TZ должны были быть обратно совместимы с определениями часовых поясов POSIX.Вы должны считать их устаревшими и использовать только формы идентификаторов Area/Locality
.