Cara mengubah pengaturan zona waktu dari baris perintah


221

Saya memiliki mesin virtual yang diatur ke PST yang dimiliki beberapa rekan di zona waktu yang berbeda.

Jika saya ingin mengubah zona waktu menjadi EST dan GMT , apa yang harus saya lakukan?

Jawaban:


288

Menggunakan timedatectl

sudo timedatectl set-timezone <timeszone>

Contoh:

  • Zona waktu sebagai EST

    sudo timedatectl set-timezone EST
    
  • Zona waktu sebagai UTC

    sudo timedatectl set-timezone UTC
    
  • Cantumkan semua Zona Waktu yang valid

    timedatectl list-timezones
    

Perintah ini sangat cocok untuk skrip otomatisasi karena tidak memerlukan interaksi pengguna apa pun dibandingkan dengan jawaban lain yang diberikan berdasarkan dpkg-reconfigure tzdata.


1
Bukan penggemar +1 komentar, tetapi saya menempatkan satu di sini karena ini bekerja untuk saya dengan cara terbaik. Saya menginginkan alat baris perintah satu baris tunggal untuk mengubah zona waktu, daripada ingin meluncurkan beberapa menu atau program gui (saya tidak tahu apa tzdatafungsinya, bagaimana cara kerjanya, tapi saya tidak perlu dengan ini satu perintah baris). Terima kasih!
Phil Ryan

bekerja seperti pesona;)
user332660

Menariknya, ia melakukan sesuatu yang sedikit berbeda dari tzdata. Saya punya masalah dengan waktu Java yang berbeda dari waktu sistem setelah menerapkan tambalan. Tzdata tidak bekerja untuk memperbaiki masalah ini, tetapi ini berhasil.
Daniel Bower

1
ini tidak berhasil untuk saya; Namun dpkg-reconfiguretriknya berhasil.
Antti Haapala

14.04.4 server ubuntu
Antti Haapala

40

Sebagai root, Anda harus menjalankan:

dpkg-reconfigure tzdata

Alat berbasis menu harus dimulai yang memungkinkan Anda untuk mengubah zona waktu.


32

Berikut ini juga berfungsi. Untuk GMT:

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

Untuk EST:

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

8
Saya pikir akan lebih baik untuk menautkan salah satu file kota daripada GMT atau EST, karena mereka akan melacak waktu musim panas, sedangkan menautkan (misalnya) GMT tidak akan mengubah waktu sistem untuk mencerminkan kapan penghematan siang hari berlaku dikotamu. misal:ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
Asfand Qazi

ini yang terbaik
Hasan Tıngır

16

Cara paling mudah terutama untuk server adalah dengan membuat daftar zona waktu:

timedatectl list-timezones

Dan pilih milikmu, misalnya:

timedatectl set-timezone Europe/Athens

Itu dia! , :-)


6

Untuk menjalankan satu program dengan pengaturan zona waktu yang berbeda, atur TZvariabel lingkungan, mis. Jalankan TZ=Pacific/Kiritimati dateuntuk melihat jam berapa di Christmas Island, atau export TZ=Pacific/Kiritimatiuntuk membiarkan pengaturan terakhir untuk sesi shell.


6

Edit timezonefile di /etcfolder sebagai:

Etc/GMT

Anda dapat menggunakan format selanjutnya:

Region "/" City 

Contoh dari /etc/timezone:

Europe/Athens

atau

Europe/Paris
Europe/London

Anda dapat bereksperimen dengan: dpkg-reconfigure tzdata dan memeriksa file zona waktu.

Anda harus memulai ulang atau memulai kembali suatu layanan (bukan layanan ntp). Saya tidak tahu yang mana. Jika ada yang tahu, silakan berbagi dengan kami. (Diuji pada Ubuntu 15.10 perubahannya diperhitungkan secara instan)


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

Saya sarankan MELAWAN menghubungkan seperti yang disebutkan oleh orang lain. Jika ada skrip yang secara tidak sengaja menulis /etc/localtimefile Anda , maka itu akan menimpa file zona waktu Pasifik Anda ... dan agak merepotkan untuk menggantinya.

Cukup salin file Pasifik di atas file localtime dengan perintah di atas.


Ini sebenarnya bekerja untuk saya. Saya pikir ada beberapa bug dengan Docker, ansible (?). Kedua timedatectl dan dpkg-reconfigure tzdata gagal untuk saya. Setelah saya salin, zona waktu berubah dari EST ke PDT.
Minggu

2

Saya menggunakan skrip berikut untuk menanyakan kepada pengguna zona waktu mana yang akan ditetapkan, dan kemudian mengonfirmasi memang telah ditetapkan:

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

Saya menyebutnya tz-set.


0

Sebagai root, Anda harus menjalankan:

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


Tolong jelaskan setidaknya bagaimana perintah ini bekerja untuk mengubah zona waktu.
Parto

0

Ini bekerja untuk saya di GCP Ubuntu 14 melalui SSH

  1. sudo su
  2. cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
  3. Mulai ulang server
  4. Selesai
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.