Arch/Xfce에서 시간대를 어떻게 쉽게 변경할 수 있습니까?

Arch/Xfce에서 시간대를 어떻게 쉽게 변경할 수 있습니까?

이사를 자주하다보니 시간대를 자주 바꿔야 합니다. 저는 Arch/Xfce를 사용하고 있습니다. 어떻게 해야 하나요? 상단 패널에서 시계를 마우스 오른쪽 버튼으로 클릭 -> 속성 -> 시간 설정 -> 시간대를 시도해 보았습니다. 작동하지 않습니다. 시간대를 입력하면 자동 완성되지 않으며 제안 사항도 표시되지 않습니다. 하지만 입력하고 "확인"을 누르면 새로운 시간대에 따라 시간이 변경되지 않습니다.

이를 수행하는 올바른 방법은 무엇입니까?

답변1

명령을 입력하는 것만큼 간단합니다.

timedatectl set-timezone Zone/SubZone

영역/하위 영역을 올바른 데이터로 바꾸는 위치입니다. 다음을 입력하여 사용 가능한 모든 시간대 목록을 얻을 수 있습니다.

timedatectl list-timezones

RTC(하드웨어 시계)가 현지 시간을 사용하도록 하려면 다음 명령을 실행하십시오.

timedatectl set-local-rtc 1

UTC 시간으로 RTC를 선호하는 경우 다음 옵션을 사용하십시오.

timedatectl set-local-rtc 0

답변2

나는 이것이 얼마나 사소한 일인지에 놀랐고 그래서 스크립트를 작성했습니다.

tz-set Asia/Bangkok

또는 목록에서 시간대를 선택하세요.

tz-set

다음 스크립트는 시간대도 업데이트합니다.

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

답변3

현재 시간대를 모르는 경우 가장 간단한 솔루션

timedatectl set-timezone "$(curl --fail https://ipapi.co/timezone)"

관련 정보