Я хочу проверить время
Часовой пояс восточного летнего времени в Вашингтоне, округ Колумбия, США (GMT-4) Четверг, 9 мая 2019 года, 20:11
blockquote>Однако,
$ TZ="EDT" date Fri May 10 00:12:25 EDT 2019
«EST» работает правильно
$ TZ="EST" date Thu May 9 19:13:11 EST 2019
В чем проблема?
date
команда не знает часовой пояс «EDT». Если часовой пояс, который не поддерживается, передается в TZ, выходной сигнал действительно будет отображаться с введенным часовым поясом, но показанное время будет UTC.
Поддерживаемые часовые пояса перечислены в / usr / share / zoneinfo / . В настоящее время часовыми поясами, которые могут использоваться в качестве значения для «TZ», являются:
Africa Cuba GMT0 Japan Pacific Turkey
America EET GMT-0 Kwajalein Poland UCT
Antarctica Egypt GMT+0 leap-seconds.list Portugal Universal
Arctic Eire Greenwich Libya posix US
Asia EST Hongkong localtime posixrules UTC
Atlantic EST5EDT HST MET PRC WET
Australia Etc Iceland Mexico PST8PDT W-SU
Brazil Europe Indian MST right zone1970.tab
Canada Factory Iran MST7MDT ROC zone.tab
CET GB iso3166.tab Navajo ROK Zulu
Chile GB-Eire Israel NZ Singapore
CST6CDT GMT Jamaica NZ-CHAT SystemV
Часовой пояс для EDT - «EST5EDT». Выходные данные TZ="EST5EDT" date
по состоянию на 10 мая 2019 года 02:11:26 UTC:
Thu May 9 22:11:26 EDT 2019
Или используйте название города, где используется EDT. Примеры: Америка / Кентукки / Луисвилл, Америка / Кентукки / Монтиселло, Америка / Нью-Йорк, Канада / Восточная и т. Д.
Короче говоря, это стандарт. Часовые пояса записываются как Timezone-Offset . Здесь - - минус, или можно сказать, что для часовых поясов, которые находятся перед UTC, написано, как Timezone-Offset , и для часовых поясов, которые находятся за UTC, записывается как TimezoneOffset . Если у часового пояса есть красивое имя, например Восточное стандартное время, его можно записать как EST или EST5 . Оба будут давать одинаковые результаты.
Сейчас летнее время (DST) встречается не везде (например, в Индии). Для часовых поясов, где это наблюдается, часовые пояса записываются как Timezone-OffsetTimezoneDST , например: EET-2EETDST (Кипр), но если DST имеет причудливое имя, такое как BST (британское летнее время), оно записывается как Timezone-OffsetFancy_name , то есть GMT0BST . Similary, EDT является EST5EDT . В этом документе Oracle вы можете видеть все стандартизированные часовые пояса.
EDT
неоднозначно, когда рассматривается на международном уровне. Вы можете получить время, которое вы ищете, выполнив
$ TZ="America/New_York" date
Thu May 9 22:11:16 EDT 2019