=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秒)起至現在的總毫秒數。
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