Yanıtlar:
Kullanımı daha kolay bulduğum bir araç dpkg-reconfigure
. kullanın:
sudo dpkg-reconfigure tzdata
Size dahil olmayanlar da dahil olmak üzere birçok seçenek verilecek tzselect
.
Bu muhtemelen OP için biraz gecikmeli ve buraya gelen diğer araştırmacılar için daha fazla amaçlanmış.
Etkileşimli olmayan bir çözüme ihtiyacınız varsa , dpkg-reconfigure tzdata ve debconf-set-seçimleriyle saat dilimini değiştirmekten bu çözümü deneyin
echo "Europe/Zurich" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Saat diliminizi / usr / share / zoneinfo içinde dolaşarak anlayabilirsiniz. Aslında yukarıdaki dpkg-reconfigure komutu uygun dosyayı oradan / etc / localtime dosyasına kopyalar. Bunu sadece el ile yapardım ve iyi çalışıyor gibi görünüyor.
Eğer uzun süren işlemler değişime uğramazsa, çok şaşırmayın. Örneğin, Apache log zaman damgaları akla geliyor. Bunun önemli olup olmadığını ve dolayısıyla çalışan işlemleri yeniden başlatmanız veya yeniden başlatmanız gerekip gerekmediğini göz önünde bulundurun.
/etc/localtime
zaten mevcut olmayan bir gereksinim olduğuna dikkat edin . Eğer varsa ve bir softlink ise /usr/share/zoneinfo/whatever
, üs olarak kabul edilir ve /etc/localtime
değişikliklerin üzerine yazılarak buna göre güncellenir.
En son Debian ve Ubuntu sürümlerinde (Stretch / Xenial vb.) Etkileşimli olmayan bir şekilde düzenlemek için, kaldırmanız gerekir /etc/localtime
, aksi takdirde /etc/timezone
üzerine yazılır.
echo 'Europe/Zurich' > /etc/timezone
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata
Bu cevap mc0e'nin cevabına dayanıyor. Şöhretimle yorum ekleyemiyorum.
TL; DR
echo "TZ=Etc/UTC" >> /etc/environment
tzconfig
nerede Etc/UTC
Tercih saat dilimidir kullanmakta buldu tzselect
.
Daha uzun versiyon
Kullanırken
dpkg-reconfigure tzdata
saat dilimi bilgileri yeniden başlatıldıktan sonra saklanmaz. İle ayarlarınızı doğrulayabilirsiniz.
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Yalnızca güncelleme yapıyorsanız /etc/timezone
, güncelleme ile tutarlı olmaz /etc/localtime
, bu nedenle yürütülmesi daha iyi olur
tzconfig
tzselect
Hangi zaman dilimlerinin gerçekte var olduğunu bulmak için kullanın (veya sadece /usr/share/zoneinfo
dizine göz atın ).
POSIX sistemlerinde daha TZ
önce öncelik olması gerekir /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
Doğrudan kullanma TZ
, birçok sistem çağrısını sık kullanılan tarih / saatle ilgili işlevlerin, bazı programların geçerli tarih için her soruşunda dosya sistemine erişmesi gerektiğinden kurtarabilir . Bu bir mikro-optimizasyon, ama oldukça basit.
TZ
Profil dosyanızda dışa aktarma pozitif bir bağlantı oluşturur mu? Bu benim deneyimimde hiç doğru gelmiyor. Belki de "Ayrıca sembolik bağlantıyı oluşturduğunuzdan emin olun" dedin.
$TZ
değişken glibc
fonksiyonlar tarafından okunur : gnu.org/software/libc/manual/html_node/TZ-Variable.html
echo "TZ=Etc/UTC" >> /etc/environment
? TZ=
parçayı kaçırıyorsun ... (eğer biri hala eski debian versiyonlarını kullanıyorsa). Ayrıca, daemon gibi etkileşimli olmayan şeyler hala /etc/localtime
bir set yerine versiyonunu kullanır TZ
...