Puede establecer una zona horaria para la duración de la consulta, por lo tanto:
TZ=America/New_York date
Tenga en cuenta el espacio en blanco entre la TZ
configuración y el date
comando. En el rc
shell Bourne-like and like , eso establece la TZ
variable solo para la línea de comando. En otras conchas ( csh
, tcsh
, fish
), siempre se puede utilizar el env
comando:
env TZ=America/New_York date
tl; dr
En sistemas Linux. las zonas horarias se definen en archivos en el /usr/share/zoneinfo
directorio. Esta estructura a menudo se conoce como la "base de datos Olson" para honrar a su contribuyente fundador.
Las reglas para cada zona horaria se definen como líneas de archivo de texto que luego se compilan en un archivo binario. Las líneas así compiladas definen el nombre de la zona; un rango de datos y tiempo durante el cual se aplica la zona; un desplazamiento de UTC para la hora estándar; y la notación para definir cómo ocurre la transición hacia y desde el horario de verano, si corresponde.
Por ejemplo, el directorio "América" contiene la información requerida para Nueva York en el archivo America/New_York
tal como se utilizó anteriormente.
Tenga en cuenta que la especificación de una zona inexistente (nombre de archivo) se ignora silenciosamente y se informan los tiempos UTC. Por ejemplo, esto informa una hora incorrecta:
TZ="America/New York" date ### WRONG ###
La especificación Single UNIX, versión-3, conocida como SUSv3 o POSIX-2001, señala que para la portabilidad, la cadena de caracteres que identifica la descripción de la zona horaria debe comenzar con un carácter de dos puntos. Por lo tanto, también podemos escribir:
TZ=":America/New_York" date
TZ=":America/Los_Angeles" date
Como un método alternativo a la especificación de zonas horarias utilizando un nombre de ruta a un archivo de descripción, SUSv3 describe el modelo POSIX. En este formato, una cadena se define como:
std offset [dst[offset][,start-date[/time],end-date[/time]]]
donde std
es el nombre del componente estándar y dst
es el horario de verano. Cada nombre consta de tres o más caracteres. El offset
es positivo para las zonas horarias al oeste del meridiano principal y negativo para las del este del meridiano. El desplazamiento se agrega a la hora local para obtener UTC (anteriormente conocido como GMT). Los campos start
y end
hora indican cuándo ocurren las transiciones estándar / luz del día.
Por ejemplo, en el este de los Estados Unidos, la hora estándar es 5 horas antes que UTC, y podemos especificar EST5EDT
en lugar de America/New_York
. Sin embargo, estas alternativas no siempre se reconocen, especialmente para zonas fuera de los Estados Unidos y es mejor evitarlas.
HP-UX (un UNIX compatible con SUSv3) utiliza reglas de texto /usr/lib/tztab
y los nombres POSIX como EST5EDT, CST6CDT, MST7MDT, PST8PDT. El archivo incluye todas las reglas históricas para cada zona horaria, similar a la base de datos Olson.
NOTA: Usted debe ser capaz de encontrar todas las zonas horarias inspeccionando el directorio siguiente: /usr/share/zoneinfo
.