¿Cómo puedo cambiar fácilmente mi zona horaria en Arch / Xfce?

10

Como me muevo, necesito cambiar las zonas horarias con frecuencia. Estoy en Arch / Xfce. ¿Cómo puedo hacer eso? He intentado hacer clic derecho en el reloj en el panel superior -> propiedades -> configuración de hora -> zona horaria. No funcionó. Cuando escribo una zona horaria, no se completa automáticamente y no muestra sugerencias. Cuando lo ingreso, no obstante, y presiono Ok, la hora no cambia según una nueva zona horaria.

¿Cuál es la forma correcta de hacer eso?

Johshi
fuente
1
Puedes probar timedatectl
ckruczek

Respuestas:

14

Es tan simple como escribir un solo comando:

timedatectl set-timezone Zone/SubZone

Donde reemplaza Zone / SubZone con los datos correctos. Puede obtener una lista de todas las zonas horarias disponibles escribiendo:

timedatectl list-timezones

Si desea que su RTC (reloj de hardware) utilice la hora local, ejecute el siguiente comando:

timedatectl set-local-rtc 1

Si prefiere su RTC en UTC, use este:

timedatectl set-local-rtc 0
Jakub
fuente
ahora mi tiempo se adelanta a mi tiempo anterior por la cantidad de horas que tiene mi zona horaria actual: entonces es +7 de la hora actual. ¿por qué?
Johshi
¿Tiene su RTC configurado en local o UTC? Si está configurado en local, utilice este comando: timedatectl set-local-rtc 1 si no: timedatectl set-local-rtc 0
Jakub
No sé, ¿cómo puedo verificar?
Johshi
lo que no es lo que quiero, es "timedatectl set-timezone Zone / SubZone" no configuró la hora correctamente. ¿timedatectl set-local-rtc me ayudará y cómo?
Johshi
Puede consultar su reloj de tiempo real (RTC) con timedatectl status. Recomiendo configurarlo en hora universal (UTC) ya que todo lo demás (¡incluida su hora local!) Se define como un desplazamiento de UTC. También tenga en cuenta que esto funciona más allá de Arch Linux y más allá de XFCE.
Adam Katz
1

Me sorprendió lo poco trivial que era esto, así que escribí un guión:

tz-set Asia/Bangkok

O, para elegir una zona horaria de una lista:

tz-set

El siguiente script también actualiza la zona horaria en:

#!/bin/bash
set -euo pipefail
program=${0##*/} # basename $0

usage () {
    >&2 printf 'Usage: %s [Region/City]\n' "$program"
    >&2 printf 'Set the system timezone\n'
    >&2 printf 'Will run tz-select to pick timezone if none given.\n'
}

# Process arguments
if [[ $# -gt 1 ]]; then  # 0 or 1 arguments only
    usage; exit 1
fi
if [[ $# -eq 0 ]]; then  # no timezone given - prompt
    timezone=$(tzselect)
else
    timezone=$1  # in timedatactl verificaiton we trust
fi

sudo timedatectl set-timezone "$timezone"

# `timedatectl set-timezone` doesn't update `/etc/timezone`
# https://unix.stackexchange.com/q/451709/143394
 <<<"$timezone" sudo tee /etc/timezone &> /dev/null

printf '\ntimedatectl says:\n'
timedatectl

# Update xfce4-panel clock
# https://unix.stackexchange.com/a/227405/143394
if property=$(xfconf-query -c xfce4-panel --list | grep timezone); then
    if [[ $(wc -l <<<"$property") -eq 1 ]]; then # only one clock widget
        xfconf-query -c xfce4-panel -p "$property" -s "$timezone"
        printf '\nUpdated xfce4-panel clock timezone to: %s\n' "$timezone"
    else
        >&2 printf 'Not changing multiple xfce4-panel properties:\n%s\n' "$property"
    fi
fi
Tom Hale
fuente