在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

猜你喜欢

转载自www.cnblogs.com/Tty725/p/11593334.html
今日推荐