Arch / Xfceでタイムゾーンを簡単に変更するにはどうすればよいですか?


10

私は移動するので、タイムゾーンを頻繁に変更する必要があります。私はArch / Xfceにいます。どうやってやるの?トップパネルの時計を右クリックしてみました->プロパティ->時間設定->タイムゾーン。うまくいきませんでした。タイムゾーンを入力しても、オートコンプリートは行われず、候補も表示されません。それを入力しても、それでも[OK]を押すと、新しいタイムゾーンに応じて時間が変更されません。

それを行う適切な方法は何ですか?


回答:


14

たった1つのコマンドを入力するのと同じくらい簡単です。

timedatectl set-timezone Zone/SubZone

ゾーン/サブゾーンを正しいデータに置き換える場所。次のように入力すると、使用可能なすべてのタイムゾーンのリストを取得できます。

timedatectl list-timezones

RTC(ハードウェアクロック)に現地時間を使用する場合は、次のコマンドを実行します。

timedatectl set-local-rtc 1

UTCでRTCを使用する場合は、次のRTCを使用してください。

timedatectl set-local-rtc 0

現在の時間は、現在のタイムゾーンの時間数だけ前の時間より進んでいます。つまり、現在の時間の+7です。どうして?
ジョーシ

RTCをローカルまたはUTCに設定していますか?ローカルに設定されている場合は、次のコマンドを使用します。timedatectlset-local-rtc 1それ以外の場合:timedatectl set-local-rtc 0
Jakub

どうすれば確認できますか?
ジョーシ

私が望むことの問題ではないことは、「timedatectl set-timezone Zone / SubZone」が時間を正しく設定しなかったことです。timedatectl set-local-rtcは私にどのように役立ちますか?
ジョーシ

でリアルタイムクロック(RTC)を確認できますtimedatectl status。他のすべて(ローカル時間を含む!)はUTCのオフセットとして定義されているため、世界時(UTC)に設定することをお勧めします。また、これはArch LinuxだけでなくXFCEだけでも機能することに注意してください。
Adam Katz

1

これが簡単なことであることに驚いたので、脚本を書きました。

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.