Jawaban:
Alat yang menurut saya lebih mudah digunakan adalah dpkg-reconfigure. Menggunakan:
sudo dpkg-reconfigure tzdata
Anda akan diberikan banyak pilihan, termasuk beberapa yang tidak termasuk tzselect.
Agaknya ini agak terlambat untuk OP, dan lebih ditujukan untuk pencari lain yang tiba di sini.
Jika Anda membutuhkan solusi non-interaktif, coba solusi ini dari mengubah zona waktu dengan dpkg-mengkonfigurasi ulang tzdata dan debconf-set-selection
echo "Europe/Zurich" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Anda dapat mengetahui zona waktu Anda dengan mencari-cari di / usr / share / zoneinfo. Sebenarnya perintah dpkg-mengkonfigurasi ulang di atas menyalin file yang sesuai dari sana ke / etc / localtime. Saya dulu hanya melakukannya secara manual, dan sepertinya berfungsi dengan baik.
Jangan terlalu terkejut jika proses yang berjalan lama tidak menerima perubahan. misal cap waktu log Apache. Pertimbangkan apakah itu penting, dan karenanya apakah Anda perlu memulai kembali proses yang berjalan atau bahkan reboot.
/etc/localtimebelum ada. Jika ada dan merupakan softlink ke /usr/share/zoneinfo/whatever, itu diambil sebagai basis dan itu /etc/localtimediperbarui sesuai, menimpa perubahan Anda.
Untuk mengeditnya secara tidak interaktif pada versi Debian dan Ubuntu terbaru (Stretch / Xenial dll.), Anda perlu menghapus /etc/localtimejuga, jika tidak /etc/timezoneakan ditimpa.
echo 'Europe/Zurich' > /etc/timezone
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata
Jawaban ini didasarkan pada jawaban mc0e '. Saya tidak dapat menambahkan komentar dengan reputasi saya.
TL; DR
echo "TZ=Etc/UTC" >> /etc/environment
tzconfig
di mana Etc/UTCzona waktu pilihan Anda yang Anda temukan gunakan tzselect.
Versi lebih panjang
Saat Anda menggunakan
dpkg-reconfigure tzdata
informasi zona waktu tidak disimpan setelah reboot. Anda dapat memverifikasi pengaturan Anda dengan
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Jika Anda hanya memperbarui /etc/timezone, pembaruan tidak akan konsisten dengan /etc/localtime, jadi lebih baik untuk mengeksekusi
tzconfig
Gunakan tzselectuntuk mencari tahu zona waktu mana yang sebenarnya ada (atau cukup telusuri /usr/share/zoneinfodirektori).
Dalam sistem POSIX, TZharus diutamakan sebelum /etc/localtime:
export TZ='Europe/Berlin'
$ date
Tue Apr 10 08:51:03 CEST 2018
export TZ='Pacific/Efate'
$ date
Tue Apr 10 18:28:33 +11 2018
Menggunakan secara langsung TZ dapat menghemat banyak panggilan sistem karena fungsi terkait tanggal / waktu yang sering digunakan harus mengakses sistem file setiap kali beberapa program menanyakan tanggal saat ini. Ini adalah mikro-optimasi, tetapi cukup sederhana.
TZdalam file profil Anda menciptakan symlink? Itu tidak terdengar benar sama sekali dalam pengalaman saya. Mungkin maksud Anda, "Pastikan juga untuk membuat symlink ..."?
$TZvariabel dibaca oleh glibcfungsi: gnu.org/software/libc/manual/html_node/TZ-Variable.html
echo "TZ=Etc/UTC" >> /etc/environment? Anda melewatkan TZ=bagian ... (jika ada seseorang yang masih menjalankan versi debian kuno). Juga, barang-barang non-aktif seperti daemon masih akan menggunakan /etc/localtimeversi daripada satu set di TZ...