Quiero cambiar la zona horaria del reloj del sistema desde la terminal.
Esto se puede hacer con
tzselect
"que abre una interfaz gráfica de usuario en la terminal"
o
sudo cp /usr/share/zoneinfo/Europe/London /etc/localtime
"que se establecerá en gmt"
Pero, ¿hay alguna manera de establecer la zona horaria con solo el desplazamiento, es decir, -1 o +5, etc.?
Necesito hacer esto ya que estoy escribiendo una aplicación para ajustar el tiempo de espera o reportar registros y la única información que tengo es la IP del usuario. Puedo usar una aplicación web para encontrar la ubicación de la IP, pero luego necesito establecer un desplazamiento que sería fácil SI pudiera obtener el desplazamiento de la ubicación, pero si necesito encontrar la zona y la ciudad, sería un verdadero dolor .
Si alguien sabe la respuesta a cómo configurar el reloj del sistema con +/- hora, sería genial.
Respuestas:
Para cambiar la zona horaria desde la terminal, simplemente presione Ctrl+ Alt+ Ten su teclado para abrir la Terminal. Cuando se abra, ejecute los siguientes comandos:
Una vez abierto, solo siga las pantallas para cambiar la zona horaria.
fuente
También puede usar el nuevo
timedatectl
para configurar la hora en 14.04.fuente
ls -R --group-directories-first /usr/share/zoneinfo
. (Tenga cuidado de no modificar o borrar ningún archivo aquí.) Más información sobreposix
yright
prefijos está aquí .sudo timedatectl set-timezone Etc/UTC
para UTC.Puede usar los archivos GMT ± x en
/usr/share/zoneinfo/Etc
.fuente
/etc/timezone
.sudo dpkg-reconfigure --frontend noninteractive tzdata
Me doy cuenta de que este hilo está un poco anticuado, pero estaba buscando una solución mejor porque necesitaba configurar automáticamente la zona horaria en una VM después de que un usuario la descarga de nuestro sitio web y la implementa. Esto es lo que terminé con:
Esto consultará geoip.ubuntu.com desde el servidor una vez que se inicie en la nueva red (mi script comprueba la conectividad primero) y luego establecerá la zona horaria del servidor en función de la respuesta.
El "wget -q0 -" le dice a wget que solo envíe los resultados a stdout, que luego se canaliza a la variable $ tz.
Espero que ayude a alguien!
fuente
TL; DR
/etc/localtime
es un enlace simbólico que apunta a un archivo/usr/share/zoneinfo/Continent/City
. Al alterar dónde apunta, puede alterar su zona horaria.Para cambiar la zona horaria, elimine
/etc/localtime
y asigne el enlace simbólico a la ciudad que desee. Por ejemplo,ls -l /etc/localtime
informa que este archivo apunta a/usr/share/zoneinfo/America/Denver
. Para cambiarlo a Nueva York, lo hagosudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
La siguiente captura de pantalla muestra los pasos y la confirmación de
timedatectl
fuente
tzdata
, por lo que sugerir lo mismo no tiene sentido. En segundo lugar,tzdata
hace más o menos lo mismo. Depende del usuario decidir qué prefiere, por lo que no es ni mejor ni peor, solo la preferencia de una persona./var/lib/dpkg/info/tzdata.list
sugiere que todos los elementos/usr/share/zoneinfo
vienen con ese paquete, supongo que es necesario instalar el paquete para tener todos los elementos, pero, francamente, no estoy muy seguro, y tampoco estoy muy familiarizado con cómo funciona esto en otros distribuciones Considere hacer esto como una pregunta en Unix y Linux , y siéntase libre de hacer referencia a esta publicación si desea proporcionar un contexto para la pregunta.La manera fácil de actualizar la zona horaria es usarla
sudo dpkg-reconfigure tzdata
. Pero esto no es tan fácil de escribir.Si desea establecer la zona horaria explícitamente a través de un script (por ejemplo, para configurar una VM), aquí hay una receta:
Establezca una variable para la zona horaria que desee, por ejemplo, una de
Los valores válidos son los directorios y nombres de archivo bajo
/usr/share/zoneinfo
.Entonces simplemente
Tenga en cuenta que ambos
/etc/localtime
y/etc/timezone
deben ser consistentes.Probablemente ahora reinicie para actualizar todos sus servicios también (por ejemplo, cron).
fuente
cp
para configurar / etc / localtime. / etc / localtime es un enlace simbólico al archivo correcto. Sicp
solía cambiarlo, en realidad golpeará el contenido de cualquier archivo tzdata al que esté apuntando actualmente, así que de repente (por ejemplo) el archivo tzdata UTC contiene datos de zona horaria para Europa / Londres en lugar de UTC, lo cual es malo (y molesto solucionar, como puedo decir por experiencia personal)Este es el método que uso, que se centra en los EE. UU. Ya que no necesito preocuparme por las zonas horarias que no son de EE. UU.
Si necesito determinar la zona horaria actual, lo hago:
o
Entonces hago:
donde
<_designation_>
es uno de los siguientes:EE. UU. / Este de
EE. UU. / EE. UU. Central
/ Montaña de
EE. UU. / Pacífico
EE. UU. / Alaska
EE. UU. / Aleutiana
EE. UU. / Arizona
EE. UU. / Este-Indiana
EE. UU. / Hawái
EE. UU. / Indiana-Starke
EE. UU. / Míchigan
EE. UU. / Pacífico-Nuevo
EE. UU. / Samoa
P.EJ:
Se pueden encontrar otras designaciones de zonas horarias aquí: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
fuente
tzselect
es una buena manera de obtener la cadena de zona horariaNo puede hacer esto a menos que seleccione el archivo de zona horaria que desea corresponder a cada desplazamiento de zona horaria.
Algunas respuestas sugirieron usar los archivos en / usr / share / zoneinfo / Etc, pero el problema con estos es que son independientes de DST.
Entonces, a menos que elija alguna configuración de zona horaria para que coincida con cada desplazamiento, o no le importe el horario de verano, no hay forma de hacerlo genéricamente.
fuente