=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
欢迎转载,但请注明内容的来源或URL;
“[转]”篇章,必须保留原始来源且勿添加本blog指向。