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


Tôi có một máy ảo được thiết lập để PST mà một vài đồng nghiệp có thời gian khác nhau. Nếu tôi muốn thay đổi múi giờ thành EST và GMT, tôi cần phải làm gì?


175
2017-08-31 18:19


gốc




Các câu trả lời:


Sử dụng timedatectl

sudo timedatectl set-timezone <timeszone>

Ví dụ:

  • Múi giờ là EST

    sudo timedatectl set-timezone EST
    
  • Múi giờ dưới dạng 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 trong khi so sánh với câu trả lời khác dựa trên dpkg-reconfigure tzdata.


204
2018-03-08 13:15



Không phải là một fan hâm mộ của các bình luận +1, nhưng đang đặt một cái ở đây vì điều này làm việc cho tôi một cách tốt nhất. Tôi đã muốn một công cụ dòng lệnh đơn để thay đổi múi giờ, thay vì muốn khởi chạy một số chương trình thực đơn hoặc chương trình gui (tôi không biết tzdata làm thế nào nó hoạt động, nhưng tôi không cần phải với lệnh này một dòng). Cảm ơn! - Phil Ryan
hoạt động như một say mê;) - user332660
Thật thú vị, nó đang làm một cái gì đó hơi khác so với tzdata. Tôi đã có một 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
điều này không hiệu quả với tôi; tuy nhiên dpkg-reconfigure đã làm các trick. - Antti Haapala
@AnttiHaapala trên hệ điều hành & phiên bản nào? - Jossef Harush


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

23
2017-08-31 10:09



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ì vậy 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 của 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


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

dpkg-reconfigure tzdata

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


23
2017-08-31 19:41





Cách dễ dàng nhất đặc biệt là 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ó! , :-)


10
2018-02-18 15:52





Để chạy một chương trình có cài đặt múi giờ khác, hãy đặt TZ biến môi trường, ví dụ: chạy TZ=Pacific/Kiritimati date để xem thời gian trên Đảo Christmas, hoặc export TZ=Pacific/Kiritimati để có cài đặt cuối cùng cho phiên trình bao.


4
2017-09-01 00:04





Chỉnh sửa timezone tập tin tại /etc thư 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ụ của /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 cat file timezone.

Bạn phải khởi động lại hoặc bắt đầu lại 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 hãy 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)


3
2017-07-28 12:19





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

Tôi khuyên bạn nên AGAINST liên kết 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 đè tệp / etc / localtime của bạn, nó sẽ ghi đè tệp múi giờ Thái Bình Dương của bạn ... và đó là một chút đau đớn để thay thế nó.

Chỉ cần sao chép tệp Pacific trên tệp cục bộ bằng lệnh ở trên.


1
2017-07-18 20:04



Đ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-reconfigure 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. - Sun


Tôi sử dụng tập lệnh sau để yêu cầu người dùng đặt múi giờ nào và sau đó xác nhận rằng nó đã được đặt:

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

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


0
2018-04-26 07:24