[轉]使用excel轉換Unix時間戳

最近項目立刻就要上線,要導入不少的評論數據,在評論時間這個地方,業務員填寫的都是Y-m-d H:i:s格式的,可是存在數據庫的都是時間戳格式的 因此。。。
xcel 默認不支持 Unix 格式時間戳,這在導入數據時十分不便。能夠用如下公式將時間戳轉換成 Excel 格式的時間:
=(x+83600)/86400+70365+19html

其中x爲時間戳的單元格,8*3600 中的 8 爲中國的時區。而後將公式單元格設置爲日期時間格式便可。轉換結果以下圖:
clipboard.png數據庫

這個公式的原理:Excel 的日期其實是序列值,它以 1900-1-1 爲 1,每過一天序列值加 1。而 Unix 時間戳是從 1970-1-1 0:00:00 UTC 開始到如今通過的秒數。用 x 表示時間戳,可獲得換算公式:
x+83600                    當 前時區的時間(秒)
(x+8
3600)/86400                 轉換單位爲天
(x+83600)/86400+70365     加上1900到1970這七十年
(x+83600)/86400+70365+19     閏年多出來的天數工具

細心的 話會發現,1900 年到 1970 年共是 17 個閏年,考慮到 Excel 將 1900-1-1 看成 1,那麼公式最後應該加 18 纔對,爲何要加19?這是 Excel 中的一個 Bug —— 1900 年也被看成閏年,所以應當再多加一天。spa

另外要注意,在 Excel 的工具 -> 選項 -> 從新計算中,有個 1904 年日期系統,若是勾選這個選項,上面的公式應當將 70 改成 66,即:
=(x+83600)/86400+70365+19htm

轉換後的日期爲當 日的零時零分零秒。blog

我也要得着 Windows 日期轉換爲 Unix 時間,算術丟了不少年,在紙上劃了半天,費了好大工夫,才把上面公式對調了一下,得出 Excel 日期轉換爲 Unix 時間截的求和公式爲:
=(x-19-70365)86400-8*3600ip

如圖示:get

clipboard.png

轉自 http://blog.sina.com.cn/s/blog_6660f52b0100v36k.htmlclass

相關文章
相關標籤/搜索