富贵论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

广告位招租qq41463402
查看: 10|回复: 0

[教程] Excel 导入Unix格式时间戳小技巧

[复制链接]

1万

主题

1282

回帖

4万

积分

巡抚

UID
17297
金钱
0 点
威望
0 点
贡献
18862 点
宣传
0 人
买家
0 元
卖家
0 元
注册时间
2017-11-23
最后登录
2024-7-25

活力无限勋章

发表于 2024-4-15 20:20 | 显示全部楼层 |阅读模式

Excel默认不支持Unix格式时间戳,这在导入数据时十分不便。可以用以下公式将时间戳转换成Excel格式的时间:

=(x+8*3600)/86400+70*365+19

其中x为时间戳的单元格,8*3600中的8为中国的时区。然后将公式单元格设置为日期时间格式即可。转换结果如下图:

Excel 导入Unix格式时间戳小技巧-1.png

这个公式的原理:Excel的日期实际上是序列值,它以1900-1-1为1,每过一天序列值加1。而Unix时间戳是从1970-1-1 0:00:00 UTC开始到现在经过的秒数。用x表示时间戳,可得到换算公式:

x+8*3600 当前时区的时间(秒)

(x+8*3600)/86400 转换单位为天

(x+8*3600)/86400+70*365 加上1900到1970这七十年

(x+8*3600)/86400+70*365+19 闰年多出来的天数

细心的话你会发现,1900年到1970年共是17个闰年,考虑到Excel将1900-1-1当作1,那么公式最后应该加18才对,为什么要加19?这是Excel中的一个bug——1900年也被当作闰年,因此应当再多加一天。

另外要注意,在Excel的工具->选项->重新计算中,有个1904年日期系统,如果勾选这个选项,上面的公式应当将70改为66,即

=(x+8*3600)/86400+66*365+19

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|富贵论坛 ( 琼ICP备2022019866号-1 )

GMT+8, 2024-7-27 09:58 , Processed in 0.110454 second(s), 35 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表