Làm cách nào tôi có thể dễ dàng thay đổi múi giờ của mình trong Arch / Xfce?


10

Vì tôi di chuyển xung quanh, tôi cần thường xuyên thay đổi múi giờ. Tôi đang ở trên Arch / Xfce. Làm thế nào tôi có thể làm điều đó? Tôi đã thử nhấp chuột phải vào đồng hồ trên bảng trên cùng -> thuộc tính -> cài đặt thời gian -> múi giờ. Nó không hoạt động. Khi tôi nhập múi giờ, nó không tự động hoàn thành và không hiển thị đề xuất. Tuy nhiên, khi tôi nhập nó và nhấn Ok, thời gian không thay đổi theo múi giờ mới.

Cách thích hợp để làm điều đó là gì?


1
Bạn có thể thử timedatectl
ckruczek

Câu trả lời:


14

Nó đơn giản như gõ chỉ bằng một lệnh:

timedatectl set-timezone Zone/SubZone

Nơi bạn thay thế Vùng / SubZone bằng dữ liệu chính xác. Bạn có thể lấy danh sách tất cả các múi giờ có sẵn bằng cách gõ:

timedatectl list-timezones

Nếu bạn muốn có RTC (đồng hồ phần cứng) bằng giờ địa phương, hãy chạy lệnh sau:

timedatectl set-local-rtc 1

Nếu bạn thích RTC của bạn tại UTC, hãy sử dụng cái này:

timedatectl set-local-rtc 0

bây giờ thời gian của tôi đã đi trước thời gian trước đó theo số giờ múi giờ hiện tại của tôi có: vì vậy đó là giờ của thời gian hiện tại. tại sao?
Johshi

Bạn có RTC được đặt thành cục bộ hoặc UTC không? Nếu nó được đặt thành cục bộ, thì hãy sử dụng lệnh này: timedatectl set-local-rtc 1 nếu không: timedatectl set-local-rtc 0
Jakub

Tôi không biết, làm thế nào tôi có thể kiểm tra?
Johshi

những gì không phải là vấn đề của những gì tôi muốn, vấn đề là "timedatectl set-timezone Zone / SubZone" đã không đặt đúng thời gian. timedatectl set-local-rtc sẽ giúp tôi và làm thế nào?
Johshi

Bạn có thể kiểm tra đồng hồ thời gian thực (RTC) của mình với timedatectl status. Tôi khuyên bạn nên đặt nó thành giờ quốc tế (UTC) vì mọi thứ khác (bao gồm cả giờ địa phương của bạn!) Được định nghĩa là phần bù của UTC. Cũng lưu ý rằng điều này hoạt động vượt ra ngoài Arch Linux và ngoài XFCE.
Adam Katz

1

Tôi đã ngạc nhiên khi điều này không tầm thường, vì vậy tôi đã viết một kịch bản:

tz-set Asia/Bangkok

Hoặc, để chọn múi giờ từ danh sách:

tz-set

Kịch bản sau đây cũng cập nhật múi giờ trong:

#!/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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.