Excel中时间戳转换时间

通过序列化保存到redis中的对象,时间也变成了时间戳,单位为ms,redis通过lua脚本获取的数据中,由于没有时间格式化函数,只能直接导出时间戳数据,无奈查找资料整理了关于Excel中时间戳和时间互转的方法记录下。

公式原理:
Excel时间实际上是序列值,它从1900-1-1为1开始,没过一天序列值加1。
Excel时间戳实际上是秒数,它从1970-1-1 00:00:00 UTC开始。

1h = 3600s
24h = 24*3600s = 86400s

XN+8*3600                                          当前时区的时间(秒)
(XN+8*3600)/86400                           转换单位为天
(XN+8*3600)/86400+70*365            加上1900到1970这七十年
(XN+8*3600)/86400+70*365+19     闰年多出来的天数


1970到1900年共有17个闰年,因为Excel是以1900为1开始,那么需要给1970+18,但由于excel的时间bug,Excel认为1900年也为闰年,所以需要给1970+19

时间戳 时间
1970-1-1 1900-1-1

一、Excel中时间戳转换时间
XN 为时间戳单元格
1、 =(XN+8*3600)/86400+70*365+19
2、转换后的单元格设置为“时间”格式

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

二、Excel时间转换时间戳
XN 为时间戳单元格
公式    =(XN-19-70*365)*86400-8*3600  

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

一、Excel中时间戳转换时间
XN 为时间戳单元格
1、=(XN+8*3600)/86400+70*365+19
2、转换后的单元格设置为“时间”格式
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值