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?

manyxcxi
sumber

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.

Jossef Harush
sumber
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.

maxschlepzig
sumber
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
pm_labs
sumber
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! , :-)

Dimitrios
sumber
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.

Gilles
sumber
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)

chasapis.christos
sumber
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.

J Roysdon
sumber
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.

Tom Hale
sumber
0

Sebagai root, Anda harus menjalankan:

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

Stefan Sebastian
sumber
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
Vignesh Chinnaiyan
sumber