Date

時區正確,UTC 正確,時間仍然錯誤

  • November 16, 2019

我有一個執行 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 之一作為我們的電腦時區。由於使用此類通用名稱的所有*問題,這種情況發生了變化。*如果您查看時區列表,您會注意到其中有很多。他們經常會隨著國家或其他國家/地區對其時區資訊的更改而更新。

引用自:https://unix.stackexchange.com/questions/548636