如何在 Libreoffice calc 中将格式化日期转换为 unix 纪元
How to convert formatted date to unix epoch in Libreoffice calc
我有单元格格式为日期或时间的列 (DD.MM.YYYY HH:MM:SS) 和类似的值
03.12.2013 14:01:49
04.12.2013 10:19:27
04.12.2013 12:44:56
04.12.2013 14:20:12
04.12.2013 18:30:21
我需要将这些值转换为 unix 纪元(自 1970 年以来的秒数)。不知何故,感觉这些值没有被识别为日期,而是被识别为字符串。我尝试了不同的格式,没有时间的日期运气不好。
对日期数据执行的操作应该是自动的,前提是单元格的格式与用户在 'Format' > 'Cells' > 'Numbers' 选项卡中定义的 DD.MM.YYYY HH:MM:SS
相同。
如果您使用的是标准设置,LibreOffice Calc 会使用 12/30/1899
作为默认日期。所以第一步是获取 12/30/1899
和 1/1/1970
之间的天数:
=(DATE(1970,1,1) - DATE(1899,12,30)) = 25569
一天的秒数:
=(60 * 60 * 24) = 86400
例如,如果单元格 A2
中的日期为 03.12.2013 14:01:49
。我减去 Calc 的默认日期和我们刚刚计算的 Unix Epoch 之间的差异,然后乘以一天中的秒数:
=(A2 - 25569) * 86400
结果是 1363096909
的值,它是以 秒 为单位的纪元时间。如果您需要 毫秒 ,请将方程乘以 1000
。
如果您经常使用它,您可以创建一个自定义函数来执行此操作。转到工具 > 宏 > 编辑宏,然后在出现的模块中输入以下内容:
REM ***** BASIC *****
Function EPOCH(date_cell)
EPOCH = (date_cell - 25569)*86400
End Function
关闭宏 IDE,现在您可以像使用任何其他功能一样使用您的 EPOCH()
!
我有单元格格式为日期或时间的列 (DD.MM.YYYY HH:MM:SS) 和类似的值
03.12.2013 14:01:49
04.12.2013 10:19:27
04.12.2013 12:44:56
04.12.2013 14:20:12
04.12.2013 18:30:21
我需要将这些值转换为 unix 纪元(自 1970 年以来的秒数)。不知何故,感觉这些值没有被识别为日期,而是被识别为字符串。我尝试了不同的格式,没有时间的日期运气不好。
对日期数据执行的操作应该是自动的,前提是单元格的格式与用户在 'Format' > 'Cells' > 'Numbers' 选项卡中定义的 DD.MM.YYYY HH:MM:SS
相同。
如果您使用的是标准设置,LibreOffice Calc 会使用 12/30/1899
作为默认日期。所以第一步是获取 12/30/1899
和 1/1/1970
之间的天数:
=(DATE(1970,1,1) - DATE(1899,12,30)) = 25569
一天的秒数:
=(60 * 60 * 24) = 86400
例如,如果单元格 A2
中的日期为 03.12.2013 14:01:49
。我减去 Calc 的默认日期和我们刚刚计算的 Unix Epoch 之间的差异,然后乘以一天中的秒数:
=(A2 - 25569) * 86400
结果是 1363096909
的值,它是以 秒 为单位的纪元时间。如果您需要 毫秒 ,请将方程乘以 1000
。
如果您经常使用它,您可以创建一个自定义函数来执行此操作。转到工具 > 宏 > 编辑宏,然后在出现的模块中输入以下内容:
REM ***** BASIC *****
Function EPOCH(date_cell)
EPOCH = (date_cell - 25569)*86400
End Function
关闭宏 IDE,现在您可以像使用任何其他功能一样使用您的 EPOCH()
!