在Excel中轉換時間戳(timeStamp)


image

=TEXT((A2/1000+8*3600)/86400+70*365+19,"yyyy-mm-dd hh:mm:ss.000")

=((B2-70*365-19)*86400-8*3600)*1000

 

什么是時間戳?
Unix時間戳(Unix timestamp),或稱Unix時間(Unix time)、POSIX時間(POSIX time),是一種時間表示方式。

定義為從格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總毫秒數。

 

image

Excel里日期、時間字段,實際上是序列值,它以1900-1-0為0,每過一天序列值加1,而時間是小數。

 

(A2/1000+8*3600)/86400+70*365+19 的理解

 

A2/1000:由毫秒轉換秒,注意:如果timeStmap是秒,就不用除1000了。

8*3600:由GMT 0時區轉到GMT +8時區

86400:由秒轉到天(=24*60*60)

70*365:70年的差值(timeStamp與Excel計算起點差異:1900年到1970年)

19:1900年到1970年共是17個閏年,考慮到Excel將1900-1-1當作1,那么公式最后應該加18才對,為什么要加19?這是Excel中的一個bug——1900年也被當作閏年,因此應當再多加一天。另外要注意,在Excel的工具->選項中,有個1904年日期系統,如果勾選這個選項,上面的公式應當將70改為66。

 

在線轉換工具:https://tool.lu/timestamp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM