Cách thay đổi cài đặt múi giờ từ dòng lệnh


221

Tôi có một máy ảo được đặt thành PST mà một vài đồng nghiệp có các múi giờ khác nhau.

Nếu tôi muốn thay đổi múi giờ thành ESTGMT , tôi cần phải làm gì?

Câu trả lời:


288

Sử dụng timedatectl

sudo timedatectl set-timezone <timeszone>

Ví dụ:

  • Múi giờ là EST

    sudo timedatectl set-timezone EST
    
  • Múi giờ là UTC

    sudo timedatectl set-timezone UTC
    
  • Liệt kê tất cả các múi giờ hợp lệ

    timedatectl list-timezones
    

Lệnh này là hoàn hảo cho các tập lệnh tự động hóa vì nó không yêu cầu bất kỳ tương tác người dùng nào trong khi so với câu trả lời được đưa ra khác dựa trên dpkg-reconfigure tzdata.


1
Không phải là một người hâm mộ của các bình luận +1, nhưng tôi đang đặt một bình luận ở đây vì điều này làm việc cho tôi theo cách tốt nhất. Tôi đang muốn một công cụ dòng lệnh một dòng duy nhất để thay đổi múi giờ, thay vì muốn khởi chạy toàn bộ menu hoặc chương trình gui (Tôi không biết tzdatanó hoạt động như thế nào, nó hoạt động như thế nào, nhưng tôi không cần phải làm điều này một dòng lệnh). Cảm ơn!
Phil Ryan

hoạt động như một bùa mê;)
user332660 24/2/2016

Thật thú vị, nó đang làm một cái gì đó hơi khác so với tzdata. Tôi gặp vấn đề với thời gian Java khác với thời gian hệ thống sau khi áp dụng một bản vá. Tzdata đã không làm việc để khắc phục vấn đề, nhưng điều này đã làm.
Daniel Bower

1
điều này đã không làm việc cho tôi; Tuy nhiên, dpkg-reconfiguređã làm các mẹo.
Antti Haapala

14.04.4 máy chủ Ubuntu
Antti Haapala

40

Là root bạn phải thực thi:

dpkg-reconfigure tzdata

Một công cụ dựa trên menu nên được bắt đầu cho phép bạn thay đổi múi giờ.


32

Sau đây cũng làm việc. Đối với GMT:

ln -sf /usr/share/zoneinfo/GMT /etc/localtime

Rừng:

ln -sf /usr/share/zoneinfo/EST /etc/localtime

8
Tôi nghĩ sẽ tốt hơn nếu liên kết một trong các tệp thành phố thay vì GMT hoặc EST, vì sau đó họ sẽ theo dõi thời gian tiết kiệm ánh sáng ban ngày, trong khi liên kết (ví dụ) GMT sẽ không thay đổi thời gian hệ thống để phản ánh khi tiết kiệm ánh sáng ban ngày có hiệu lực trong thành phố của bạn. ví dụ:ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
Asfand Qazi

đây là điều tốt nhất
Hasan Tıngır

16

Cách dễ dàng nhất đặc biệt là với một máy chủ là liệt kê các múi giờ:

timedatectl list-timezones

Và chọn của bạn, ví dụ:

timedatectl set-timezone Europe/Athens

Đó là nó! , :-)


6

Để chạy một chương trình với cài đặt múi giờ khác, hãy đặt TZbiến môi trường, ví dụ: chạy TZ=Pacific/Kiritimati dateđể xem thời gian trên đảo Giáng sinh hoặc export TZ=Pacific/Kiritimatiđể cài đặt kéo dài cho phiên vỏ.


6

Chỉnh sửa timezonetệp tại /etcthư mục dưới dạng:

Etc/GMT

Bạn có thể sử dụng định dạng tiếp theo:

Region "/" City 

Ví dụ về /etc/timezone:

Europe/Athens

hoặc là

Europe/Paris
Europe/London

Bạn có thể thử nghiệm với: dpkg-reconfigure tzdata và kiểm tra tập tin múi giờ.

Bạn phải khởi động lại hoặc bắt đầu lại một dịch vụ (không phải dịch vụ ntp). Tôi không biết cái nào. Nếu ai đó biết xin vui lòng chia sẻ với chúng tôi. (Đã thử nghiệm trên Ubuntu 15.10, thay đổi được đưa vào tài khoản ngay lập tức)


4
cp -p /usr/share/zoneinfo/US/Pacific /etc/localtime

Tôi khuyên bạn nên liên kết LẠI như được đề cập bởi những người khác. Nếu một số tập lệnh vô tình ghi /etc/localtimetập tin của bạn , thì nó sẽ ghi đè lên tập tin múi giờ Thái Bình Dương của bạn ... và thật khó để thay thế tập tin đó.

Chỉ cần sao chép tệp Thái Bình Dương qua tệp giờ cục bộ bằng lệnh ở trên.


Điều này thực sự làm việc cho tôi. Tôi nghĩ rằng có một số lỗi với Docker, ansible (?). Cả hai timedatectl và dpkg-điều chỉnh lại tzdata đều thất bại đối với tôi. Sau khi tôi sao chép, múi giờ đã thay đổi từ EST thành PDT.
CN

2

Tôi sử dụng tập lệnh sau để hỏi người dùng nên đặt múi giờ nào, và sau đó xác nhận nó thực sự đã được đặt:

#!/bin/sh
sudo timedatectl set-timezone $(tzselect)
echo
echo timedatectl says:
timedatectl

Tôi gọi nó tz-set.


0

Là root bạn phải thực thi:

ln -fs /usr/share/zoneinfo/Europe/Warsaw /etc/localtime && dpkg-reconfigure --frontend noninteractive tzdata


Vui lòng giải thích ít nhất cách lệnh này hoạt động để thay đổi múi giờ.
Parto

0

Điều này làm việc với tôi trên GCP Ubuntu 14 thông qua SSH

  1. sudo su
  2. cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
  3. Khởi động lại máy chủ
  4. Làm xong
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.