Timestamps

在 LibreOffice Calc 中將紀元時間轉換為人類可讀

  • December 30, 2019

我在單元格H2中有一個紀元時間,其值為1517335200000. 我正在嘗試將其轉換為應30/01/2018 6:00:00 PM在 GMT 中返回的人類可讀格式。

我試圖用H2/86400+25569從 OpenOffice 論壇獲得的公式來轉換它。該公式返回值17587319。當我將 LibreOffice Calc 中的數字格式更改為 時Date,它會返回06/09/-15484. 這不是我想要的價值。那麼,我怎樣才能得到 dd/mm/yyyy hh:mm:ss 格式的值呢?

如果H2包含要轉換的數字 ( 1517335200000)。

  1. 使H3包含公式:

= H2/1000/(606024) + 25569

這將返回數字 43130.75。 2. 將單元格的格式更改H3為最新。任何一個:

  • **Shift**- **Ctrl**-**3**
  • 選擇格式–>數字格式–>日期
  • 選擇格式->單元格(打開一個視窗)->數字-日期-格式
  1. 將單元格的格式更改H3為所需的日期格式:
  • 選擇格式–>單元格(打開一個面板) –>數字-日期-格式(選擇一個)
  1. 如果不夠寬以顯示所需的格式,請擴大單元格的寬度(提示:出現三個 #)。

為什麼:

自 1970 年 1 月 1 日以來,紀元時間以秒為單位。

Calc 內部時間是自 1899 年 12 月 30 日以來的天數。

因此,要在 H3 中獲得正確的結果:

  1. 得到正確的數字(最後一個公式):
H3 = H2/(60*60*24) + ( Difference to 1/1/1970 since 12/30/1899 in days )
H3 = H2/86400      + ( DATE (1970,1,1) - DATE(1899,12,30) )
H3 = H2/86400      +   25569

但是你給出的 epoch 值太大了,比它應該的大了三個零。應該是 1517335200 而不是 1517335200000。它似乎以毫秒為單位。因此,除以 1000。隨著這種變化,公式給出:

H3 = H2/1000/86400+25569  =  43130.75
  1. 更改H3日期和時間的格式(格式 –> 單元格 –> 數字 –> 日期 –> 日期和時間),您將看到:
01/30/2018 18:00:00

在 H3。


當然,由於 Unix 紀元時間始終基於 UTC(+0 子午線),因此上面的結果需要根據本地時區與 UTC 的距離移動多少小時。因此,要獲取本地時間,如果時區是太平洋標準時間 GMT-8,我們需要添加 (-8) 小時。H3 與 H4 中的本地時區 (-8) 的公式將是:

H3 = H2/1000/86400 + 25569 + H4/24 = 43130.416666

並呈現為:

01/30/2018 10:00:00

如果 H3 的格式設置為這種時間格式。

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