2014-06-27 116 views
0

我有一個帶有unix時間戳的數據庫(以CSV格式)。我嘗試將它們在LibreOffice Calc中轉換爲人類可讀的日期。一切都很好,除了一天滯後。將unix時間戳轉換爲日期時不匹配

例如,我的時間戳是-518144400(在E2單元格中)。 我的功能是:= E2/86400 + DATEVAL(「1/1/1970」)。 我獲得19572,9583333333相當於1953-07-31。 這on-line calculator確認結果。

什麼問題?只是正確的答案是1953-08-01。首先,我認爲時間戳包含一個錯誤。但是,在this PHP calendar中,如果我在URL中粘貼-518144400作爲參數,則它可以工作。在線日曆將這個時間戳與我認爲是正確的答案關聯起來。

我不明白會發生什麼。我錯過了什麼? 一個解決方案可能是在我的函數中添加+1來糾正。但我並不滿足,我想明白...

回答

1

這取決於轉換時區,我的意思是-518144400(時間戳)等於1953年7月31日在GMT

雖然它將在1953-08-01在所有其他時區時間相對於GTM是+1或更多

+0

好的。感謝解釋。那麼,有什麼辦法可以正確修改時區嗎? (我的意思是添加+1到我的功能不同的方式)? – jonathan

+0

是的,你必須把它添加到時間爲Unix時代格林威治標準時間。你想在Excel中這樣做嗎? –

+1

在Excel(或Calc)中會很棒。 :) 隨着你的建議,我測試了一件新事物。在法國,我和我的數據來了,時間ZOne是GMT +1。如果我將-518144400轉換爲日期和小時,我會得到「1953-07-31 23:00:00」。你說得對,它不是一天滯後,而是一小時滯後(3600秒)。因此,我的函數變成了=(E2 + 3600)/ 86400 + DATEVAL(「1/1/1970」),結果是正確的(即1953-08-01 00:00:00)。 有什麼錯誤或我在某處錯了嗎? – jonathan