Вы можете установить часовой пояс для продолжительности запроса, таким образом:
TZ=America/New_York date
Обратите внимание на пробел между TZ
настройкой и date
командой. В Bourne-like и-like rc
shell, который устанавливает TZ
переменную только для командной строки. В других оболочках ( csh
, tcsh
, fish
), вы всегда можете использовать env
команду вместо:
env TZ=America/New_York date
ТЛ; др
В системах Linux. часовые пояса определяются в файлах в /usr/share/zoneinfo
каталоге. Эту структуру часто называют «базой данных Олсона», чтобы почтить ее основателя.
Правила для каждого часового пояса определяются как строки текстового файла, которые затем компилируются в двоичный файл. Скомпилированные строки определяют имя зоны; диапазон данных и время, в течение которого применяется зона; смещение от UTC для стандартного времени; и примечание для определения того, как происходит переход на летнее время и обратно, если это применимо.
Например, каталог «Америка» содержит необходимую информацию для Нью-Йорка в указанном выше файле America/New_York
.
Помните, что спецификация несуществующей зоны (имя файла) игнорируется и сообщается время UTC. Например, это сообщает о неправильном времени:
TZ="America/New York" date ### WRONG ###
В Единой спецификации UNIX версии 3, известной как SUSv3 или POSIX-2001, отмечается, что для переносимости строка символов, которая идентифицирует описание часового пояса, должна начинаться с символа двоеточия. Таким образом, мы также можем написать:
TZ=":America/New_York" date
TZ=":America/Los_Angeles" date
В качестве альтернативного метода спецификации часовых поясов, использующего путь к файлу описания, SUSv3 описывает модель POSIX. В этом формате строка определяется как:
std offset [dst[offset][,start-date[/time],end-date[/time]]]
где std
- стандартное имя компонента и dst
летнее. Каждое имя состоит из трех или более символов. Это offset
положительно для часовых поясов к западу от основного меридиана и отрицательно для тех к востоку от меридиана. Смещение добавляется к местному времени, чтобы получить UTC (ранее известное как GMT). start
И end
поля времени указывают , когда происходят стандарт / дневного света переходы.
Например, в восточной части Соединенных Штатов стандартное время на 5 часов раньше, чем в формате UTC, и мы можем указать EST5EDT
вместо America/New_York
. Однако эти альтернативы не всегда признаются, особенно для зон за пределами Соединенных Штатов, и их лучше избегать.
HP-UX (UNIX, совместимый с SUSv3) использует текстовые правила /usr/lib/tztab
и имена POSIX, такие как EST5EDT, CST6CDT, MST7MDT, PST8PDT. Файл включает в себя все исторические правила для каждого часового пояса, родственные базе данных Олсона.
Примечание: Вы должны быть в состоянии найти все часовые пояса, проверив следующий каталог: /usr/share/zoneinfo
.