時區正確,UTC 正確,時間仍然錯誤
我有一個執行 Amazon Linux(如 rhel fedora)的 AWS EC2 伺服器,它不知道如何判斷時間,或者不知如何計算夏令時。這使我所有的時間戳都減少了 1 小時。
[ec2-user@ip-xxx-xx-xx-xxx ~]$ date && date -u Thu Oct 24 17:19:56 EST 2019 Thu Oct 24 22:19:56 UTC 2019
該輸出的問題是(在命令執行時),EST 中的實際時間是
18:19:56
.同樣,UTC 時間是正確的,我已將
/etc/localtime
連結設置為America/Detroit
,但它仍然顯示UTC-5
並且不會為 DST 調整一個小時。[ec2-user@ip-xxx-xx-xx-xxx ~]$ sudo hwclock --debug hwclock from util-linux 2.23.2 Using /dev interface to clock. Last drift adjustment done at 1571955488 seconds after 1969 Last calibration done at 1571955488 seconds after 1969 Hardware clock is on UTC time Assuming hardware clock is kept in UTC time. Waiting for clock tick... ...got clock tick Time read from Hardware Clock: 2019/10/24 22:23:43 Hw clock time : 2019/10/24 22:23:43 = 1571955823 seconds since 1969 Thu 24 Oct 2019 05:23:43 PM EST -0.689737 seconds
我所有的 tzdata 都是最新的。yum 沒有待處理的更新。
[ec2-user@ip-xxx-xx-xx-xxx ~]$ echo $TZ [ec2-user@ip-xxx-xx-xx-xxx ~]$ ls -l /etc/localtime lrwxrwxrwx 1 root root 23 Dec 8 2015 /etc/localtime -> /usr/share/zoneinfo/EST
我不知所措。有人知道會發生什麼嗎?Linux 不會針對 DST 進行調整嗎?
為了擴展我的評論,在大多數情況下,您想選擇一個與您的時區相對應的城市。您很可能不住在那個城市。在大多數情況下,它將是您所在州、國家或時區最大的城市之一。
例如,在加利福尼亞我們使用
Los_Angeles
(全名是America/Los_Angeles
)。普通時區(例如 EST)通常不包括夏季和冬季時間的定義。它被視為通用時區。UTC 也是這樣一個通用時區。它也恰好是用作基準時間的一台電腦。它也不包括任何調整(換句話說,沒有閏秒,沒有夏季/冬季變化,直截了當的時間)。所有其他時區現在顯然都基於 UTC。
對於美國東海岸,我認為您應該使用
America/New_York
.在美國,對於沒有夏季/冬季變化的地方,我們有幾個專門的時區。例如,亞利桑那州從未使用過這種時鐘變化。它始終保持在同一個時鐘上。它有其特定的時區定義:
America/Phenix
.阿拉斯加夏威夷是另一個在冬季和夏季之間不改變時鐘的州。現在,我很確定在過去我們只會使用 EST、CST、MST 或 PST 之一作為我們的電腦時區。由於使用此類通用名稱的所有*問題,這種情況發生了變化。*如果您查看時區列表,您會注意到其中有很多。他們經常會隨著國家或其他國家/地區對其時區資訊的更改而更新。