Como posso alterar facilmente meu fuso horário no Arch / Xfce?

10

Desde que me desloco, preciso mudar os fusos horários com frequência. Estou no Arch / Xfce. Como eu posso fazer isso? Tentei clicar com o botão direito do mouse no relógio no painel superior -> propriedades -> configurações de hora -> fuso horário. Não deu certo. Quando digito um fuso horário, ele não é preenchido automaticamente e não mostra sugestões. No entanto, quando eu entro e pressiono Ok, o horário não muda de acordo com um novo fuso horário.

Qual é a maneira correta de fazer isso?

Johshi
fonte
1
Você pode tentar timedatectl
ckruczek

Respostas:

14

É tão simples quanto digitar apenas um comando:

timedatectl set-timezone Zone/SubZone

Onde você substitui Zone / SubZone pelos dados corretos. Você pode obter uma lista de todos os fusos horários disponíveis digitando:

timedatectl list-timezones

Se você deseja que seu RTC (relógio de hardware) use a hora local, execute o seguinte comando:

timedatectl set-local-rtc 1

Se você preferir seu RTC no UTC, use este:

timedatectl set-local-rtc 0
Jakub
fonte
agora meu tempo está adiantado em relação ao horário anterior, pelo número de horas que meu fuso horário atual possui: portanto, é +7 do horário atual. porque?
Johshi
Você tem seu RTC definido como local ou UTC? Se estiver definido como local, use este comando: timedatectl set-local-rtc 1, caso contrário: timedatectl set-local-rtc 0
Jakub
Não sei, como posso verificar?
Johshi
qual não é o problema do que eu quero, a coisa é "timedatectl set-timezone Zone / SubZone" não acertou a hora corretamente. O timedatectl set-local-rtc me ajuda e como?
Johshi 19/07/19
Você pode verificar seu relógio em tempo real (RTC) com timedatectl status. Eu recomendo configurá-lo para a hora universal (UTC), pois todo o resto (incluindo a hora local!) É definido como um deslocamento da UTC. Observe também que isso funciona além do Arch Linux e além do XFCE.
Adam Katz
1

Fiquei surpreso como isso não era trivial, então escrevi um script:

tz-set Asia/Bangkok

Ou, para escolher um fuso horário de uma lista:

tz-set

O script a seguir também atualiza o fuso horário em:

#!/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
fonte