如何在Arch / Xfce中轻松更改我的时区?


10

由于我四处走动,因此我需要经常更改时区。我在Arch / Xfce上。我怎样才能做到这一点?我尝试右键单击顶部面板上的手表->属性->时间设置->时区。没用 当我输入时区时,它不会自动完成,也不会显示建议。但是,当我输入时,按OK,时间不会根据新的时区更改。

这样做的正确方法是什么?


1
您可以尝试timedatectl
ckruczek '16

Answers:


14

就像只输入一个命令一样简单:

timedatectl set-timezone Zone/SubZone

用正确的数据替换Zone / SubZone的位置。您可以通过键入以下内容获取所有可用时区的列表:

timedatectl list-timezones

如果要使用本地时间设置RTC(硬件时钟),请运行以下命令:

timedatectl set-local-rtc 1

如果您更喜欢UTC的RTC,请使用以下一项:

timedatectl set-local-rtc 0

现在,我的时间比以前的时间早了我当前时区的小时数:所以是当前时间的+7。为什么?
Johshi '16

您将RTC设置为本地还是UTC?如果设置为本地,则使用以下命令:timedatectl set-local-rtc 1否则:timedatectl set-local-rtc 0
Jakub

我不知道该如何检查?
Johshi '16

无关紧要的是,“ timedatectl set-timezone Zone / SubZone”未正确设置时间。timedatectl set-local-rtc对我有帮助吗?
Johshi '16

您可以使用来检查您的实时时钟(RTC)timedatectl status。我建议将其设置为世界时(UTC),因为其他所有内容(包括您的本地时间!)都定义为UTC的偏移量。另请注意,这不仅适用于Arch Linux和XFCE。
亚当·卡兹

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.