desarrollo-web-br-bd.com

Configuración de zona horaria en Linux

Estoy configurando la zona horaria a GMT + 6 en mi máquina Linux copiando el archivo zoneinfo a /etc/localtime, pero el comando date todavía muestra la hora como UTCtime-6. ¿Alguien puede explicarme este comportamiento?

Supongo que el comando date debería mostrar UTCtime+6 hora. Aquí hay pasos que estoy siguiendo:

date
Wed Jan 22 17:29:01 IST 2014

date -u
Wed Jan 22 11:59:01 UTC 2014

cp /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime

date
Wed Jan 22 05:59:21 GMT+6 2014

date -u
Wed Jan 22 11:59:01 UTC 2014
169
Rahul Dhobi

Eche un vistazo a esta publicación del blog titulada: Cómo: 2 métodos para cambiar TimeZone en Linux .

Distros de Red Hat

Si está utilizando una distribución como Red Hat, entonces su enfoque de copiar el archivo sería más que aceptable.

NOTA: Si está buscando una solución independiente de la distribución, esto también funciona en Debian, aunque a continuación hay enfoques más simples si solo necesita preocupado por las máquinas Debian.

$ ls /usr/share/zoneinfo/
Africa/      CET          Etc/         Hongkong     Kwajalein    Pacific/     ROK          zone.tab
America/     Chile/       Europe/      HST          Libya        Poland       Singapore    Zulu
Antarctica/  CST6CDT      GB           Iceland      MET          Portugal     Turkey       
Arctic/      Cuba         GB-Eire      Indian/      Mexico/      posix/       UCT          
Asia/        EET          GMT          Iran         MST          posixrules   Universal    
Atlantic/    Egypt        GMT0         iso3166.tab  MST7MDT      PRC          US/          
Australia/   Eire         GMT-0        Israel       Navajo       PST8PDT      UTC          
Brazil/      EST          GMT+0        Jamaica      NZ           right/       WET          
Canada/      EST5EDT      Greenwich    Japan        NZ-CHAT      ROC          W-SU         

Sin embargo, recomendaría vincularlo en lugar de copiar.

$ Sudo unlink /etc/localtime 
$ Sudo ln -s /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime

Ahora la fecha muestra la zona horaria diferente:

$ date -u
Thu Jan 23 05:40:31 UTC 2014

$ date 
Wed Jan 22 23:40:38 GMT+6 2014

Distros de Ubuntu/Debian

Para cambiar la zona horaria en cualquiera de estas distribuciones, puede usar este comando:

$ Sudo dpkg-reconfigure tzdata

ss #1

$ Sudo dpkg-reconfigure tzdata

Current default time zone: 'Etc/GMT-6'
Local time is now:      Thu Jan 23 11:52:16 GMT-6 2014.
Universal Time is now:  Thu Jan 23 05:52:16 UTC 2014.

Ahora cuando lo revisamos:

$ date -u
Thu Jan 23 05:53:32 UTC 2014

$ date 
Thu Jan 23 11:53:33 GMT-6 2014

NOTA: También existe esta opción en Ubuntu 14.04 y superior con un solo comando (fuente: Preguntar a Ubuntu - configuración de zona horaria desde la terminal ):

$ Sudo timedatectl set-timezone Etc/GMT-6

Sobre el uso de "Etc/GMT + 6"

extracto de @ Respuesta de MattJohnson en SO

Zonas como Etc/GMT+6 se invierten intencionalmente para la compatibilidad con los estándares POSIX. Vea los comentarios en este archivo .

Casi nunca debería necesitar usar estas zonas. En su lugar, debería usar una zona horaria con nombre completo como America/New_York o Europe/London o lo que sea apropiado para su ubicación. Consulte la lista aquí .

291
slm

Así es como lo hago en Ubuntu. Solo reemplace Asia/Tokyo con tu propia zona horaria.

echo 'Asia/Tokyo' | Sudo tee /etc/timezone

Sudo dpkg-reconfigure -f noninteractive tzdata

Hay un error en tzdata: ciertos valores se normalizan con dpkg-reconfigure:

echo 'US/Central' >/etc/timezone
dpkg-reconfigure -f noninteractive tzdata
# Current default time zone: 'America/Chicago'

echo 'US/Eastern' >/etc/timezone
apt-get install --reinstall tzdata
# Current default time zone: 'America/New_York'
26
user241

tzselect el comando está hecho para hacer lo que quieras.

17
SHW