excel:时间戳格式与日期格式的互转

13位时间戳转日期时间(毫秒)

假设A2单元格内容为13位的时间戳,再选中B2单元格,在公式框中输入

excel 复制代码
=TEXT((A2/1000+8*3600)/86400+70*365+19,"yyyy/mm/dd hh:mm:ss.000")

接下来,选中B2单元格,下拉应用公式,整列搞定。

10位时间戳转日期时间(秒)

10位时间戳的转换方法与13位时间戳同理。唯一不同的是,此时的公式为

excel 复制代码
=TEXT((A2+8*3600)/86400+70*365+19,"yyyy/mm/dd hh:mm:ss")

日期时间转10位时间戳

话不多说,直接上公式

excel 复制代码
= INT((A2-70*365-19)*86400-8*3600)

其实就是把公式反过来,日期时间转13位时间戳, 我就不赘述了。

学习是一个举一反三的过程,如果只需解一时燃眉之急,记住以上公式也够用。但如果想知其然且知其所以然,就得了解公式背后的原理了。

以10位时间戳(秒)转日期为例。公式:

excel 复制代码
=TEXT((A2+8*3600)/86400+70*365+19,"yyyy/mm/dd hh:mm:ss")

A2+83600:当前时区的时间(秒)(A2+83600)/86400:将秒转换为天(A2+83600)/86400+70365:加上1900年至1970年的70年(A2+83600)/86400+70365+19:加上闰年多出来的天数19

Excel的日期实际上是序列值,它以1900-1-1=1为始,每过一天序列值加1;Unix时间戳是从1970-1-1 0:00:00开始到现在的秒数。

细心的人可能会发现,1900年至1970年共17个闰年,如果考虑到Excel将1900-1-1当作1,那么公式最后应该加18才对,为什么要加19呢?这是Excel的一个bug--把1900年也当作闰年了。

Tips:另有一点需注意,在Excel的【文件->工具->选项->重新计算】中,有个"使用1904日期系统"选项,如果勾选此选项,上面的公式应将70改为66,即:

=TEXT((A2+83600)/86400+66365+19,"yyyy/mm/dd hh:mm:ss")

参考:

https://blog.csdn.net/zhizhengguan/article/details/121226298

相关推荐
慧都小妮子4 小时前
前端实现复杂公式计算:SpreadJS 在京东物流 Udata 平台的落地实践
javascript·数据分析·excel·数据可视化·spreadjs·前端表格控件
葡萄城技术团队13 小时前
告别宽表拖拽:SpreadJS 如何让 Web 表格承接 Excel 操作习惯
数据库·html·excel
如意机反光镜裸13 小时前
如何合并局域网共享文件夹中的多个 Excel 工作簿?(免 WPS 会员解决方案)
服务器·excel·wps
不剪发的Tony老师15 小时前
DuckDB数据分析实战:读写Excel文件
数据分析·excel·duckdb
lengjingzju2 天前
一天掌握Vim,精华使用笔记
笔记·vim·excel
灵析表格2 天前
灵析表格财务函数深度实用性分析与实操教程
开发语言·ai·json·excel·wps
杰夫(简道云个人搭建)3 天前
SAAS系统应该先解决业务问题,再优化体验
数据库·人工智能·低代码·excel·个人开发
AI导出鸭4 天前
怎么让豆包做表格?AI导出鸭苹果版将豆包输出的管道表格智能解析为二维结构,一键导出为Excel或Word标准表格。
人工智能·chatgpt·word·excel·ai导出鸭
Am-Chestnuts5 天前
AI表格复制到Excel后日期金额和编号被改写:导入与格式检查方法
excel
方渐鸿5 天前
【无标题】使用Agent总结网页信息写入Excel
ai·excel