You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在LibreOffice Calc中将单元格纪元时间转换为指定可读格式?

解决OpenOffice中毫秒级纪元时间转GMT可读日期的问题

我来帮你搞定这个转换问题,你之前出错的核心原因是没把13位的毫秒级时间戳先转换成秒,直接用毫秒计算导致日期数值完全偏离了。咱们一步步来解决:

正确的转换公式

首先,你的纪元时间是13位的毫秒值(1517335200000),需要先除以1000转成秒,再转换成OpenOffice的日期序列号。用这个公式:

=H2/1000/86400 + 25569

或者更直观的写法(效果完全一样):

=DATE(1970,1,1) + (H2/1000)/86400

为什么这么写?OpenOffice的日期序列号是以1900年1月1日为起点,而纪元时间(Unix时间戳)是以1970年1月1日GMT为起点,25569就是这两个日期之间的天数差。把秒数除以86400(一天的秒数),再加上这个天数差,就能得到对应的日期序列号。

设置GMT时区和日期格式

公式输入后,你还需要把单元格格式调整成你要的dd/mm/yyyy hh:mm:ss AM/PM,并且指定时区为GMT:

  1. 右键这个单元格,选择「格式化单元格」
  2. 在弹出的窗口中切换到「数字」标签页
  3. 左侧分类选择「日期」,然后点击「自定义格式」,输入格式代码:dd/mm/yyyy hh:mm:ss AM/PM
  4. 点击窗口右下角的「选项」按钮,在「时区」下拉菜单里选择「GMT (格林威治标准时间)」
  5. 依次点击「确定」保存设置

这样就能得到你想要的30/01/2018 6:00:00 PM结果了。

为什么之前的公式出错?

你之前用的H2/86400+25569直接用毫秒除以一天的秒数,得到的数值是1517335200000/86400=17561750,加上25569后是17587319,这个序列号对应的日期是非常久远的历史日期,自然和你要的结果完全不符。

内容的提问来源于stack exchange,提问作者Fazle Rabbi

火山引擎 最新活动