การเปลี่ยนเขตเวลาใน Debian ช่วยให้เวลาท้องถิ่นเป็น UTC


27

ฉันกำลังพยายามให้โปรแกรมเข้าสู่ระบบในเวลาท้องถิ่นเพื่อสติของตัวเอง

ฉันได้ปรับปรุงเขตเวลาของฉันด้วย:

 dpkg-reconfigure tzdata

แต่ผลลัพธ์ของคำสั่งนั้นคือ:

Current default time zone: 'Australia/Adelaide'
Local time is now:      Mon May 20 03:09:52 UTC 2013.
Universal Time is now:  Mon May 20 03:09:52 UTC 2013.

แจ้งให้ทราบUTCในLocal time

เหตุผลใดที่อาจเป็นเช่นนี้?

ฉันได้ทำ Google เป็นจำนวนมาก แต่ปัญหาของฉันดูเหมือนจะแตกต่างจากพวกเขาทั้งหมด :(

นี่คือรายละเอียดเพิ่มเติมบางส่วน:

# cat /etc/timezone
Australia/Adelaide

# date
Mon May 20 03:41:06 UTC 2013

# export TZ='Australia/Adelaide'; date
Mon May 20 13:16:11 CST 2013

การตั้งค่าexport TZ='Australia/Adelaide';ในการ/etc/profileทำให้ของฉันdateทำงานโดยค่าเริ่มต้นในเซสชั่นทุบตี แต่ไม่เปลี่ยนวันที่บันทึกระบบ (หลังจากรีสตาร์ทบริการ)

แก้ไข:

# ls -l /etc/localtime
lrwxrwxrwx 1 root root 20 May 10 14:48 /etc/localtime -> /usr/share/zoneinfo/

# ls /etc/localtime/
Adelaide    Chile    GMT        Japan      PST8PDT    Universal
Africa      Cuba     GMT+0      Kwajalein  Pacific    W-SU
America     EET      GMT-0      Libya      Poland     WET
Antarctica  EST      GMT0       MET        Portugal   Zulu
Arctic      EST5EDT  Greenwich  MST        ROC        iso3166.tab
Asia        Egypt    HST        MST7MDT    ROK        localtime
Atlantic    Eire     Hongkong   Mexico     Singapore  localtime.dpkg-new
Australia   Etc      Iceland    Mideast    SystemV    posix
Brazil      Europe   Indian     NZ         Turkey     posixrules
CET         Factory  Iran       NZ-CHAT    UCT        right
CST6CDT     GB       Israel     Navajo     US         zone.tab
Canada      GB-Eire  Jamaica    PRC        UTC

ตอบ:

ทำงานออกมาขอบคุณที่ติดขัด ด้วยเหตุผลบางอย่างที่ฉันมี / etc / localtime เป็น symlink ... IT Guy ที่นี่ติดตั้งเซิร์ฟเวอร์โดยใช้ Turnkey 12 ดังนั้นอาจเป็นปัญหา

# mv /etc/localtime /etc/localtime.old
# cp /usr/share/zoneinfo/Australia/Adelaide /etc/localtime
# date
Thu May 23 09:36:17 CST 2013

คำตอบ:


22

ลองด้วยวิธีนี้:

$ sudo cp /usr/share/zoneinfo/Australia/Adelaide /etc/localtime

cp /usr/share/zoneinfo/Australia/Adelaide /etc/localtimeไม่เปลี่ยนแปลงอะไรสำหรับฉัน :( เวลาท้องถิ่นยังคงเป็น UTC ฉันได้เพิ่มสิ่งที่ls -l /etc/localtimeกล่าวว่ายัง

2
ทำไมคุณถึงสร้าง symlink ขึ้นมาที่นั่น คุณต้องคัดลอกไฟล์เดียว ... แก้ไขโดยลบ symlink "rm / etc / localtime" และทำ cp ตามที่ฉันเขียน "cp / usr / share / zoneinfo / Australia / Adelaide / etc / localtime" ;-)

symlink อยู่ที่นั่นโดยค่าเริ่มต้น .. อาจเป็นเรื่องแบบเบ็ดเสร็จ mv /etc/localtime /etc/localtime.old cp /usr/share/zoneinfo/Australia/Adelaide /etc/localtimeแก้ไขปัญหา :) ขอบคุณ!
Complistic

2
ฉันคิดว่าการคัดลอกผิด เกิดอะไรขึ้นถ้าไฟล์ zoneinfo เปลี่ยนแปลง? หาก / etc / localtime เป็น symlink (อยู่ใน Debian) คุณจะเขียนทับไฟล์ zoneinfo อื่น ๆ
XTF

32

ฉันคิดว่าวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้คือการดำเนินการ

sudo dpkg-reconfigure tzdata

+1 นี่เป็นวิธีที่เหมาะสมในการทำในระบบเดเบียน
jhauris

2
ใช่dpkg-reconfigure tzdataเป็นสิ่งแรกที่ฉันพยายาม มันไม่ทำงานสำหรับฉันเพราะ/etc/localtimeเป็น symlink ด้วยเหตุผลบางอย่าง หลังจากแก้ไขว่าทั้งสองวิธีจะเปลี่ยนเขตเวลาได้อย่างถูกต้อง
Complistic

ใช่! ppl ดูเหมือนจะคิด แต่ฉันกำลังใช้ debian ในคอนเทนเนอร์นักเทียบท่า .. แล้วอะไรนะ?
ซูเปอร์ฮีโร่

-1

ตั้งเวลาโดยอัตโนมัติโดยใช้ "Network Time Protocol" ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง ntp บนเดเบียน

$ sudo apt-get install ntp

สำหรับข้อมูลรายละเอียดโปรดอ่านเอกสารhttps://wiki.debian.org/DateTime


มันจะดีกว่าที่จะให้ขั้นตอนที่นี่และใช้ลิงค์เป็นข้อมูลอ้างอิงสำหรับรายละเอียดเพิ่มเติม ด้วยวิธีนี้คำตอบของคุณจะไม่สูญเสียคุณค่าทั้งหมดเมื่อลิงก์ไม่ถูกต้อง
Anthon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.