LibreOffice Calc / OpenOffice Calc 电子表格应用程序使用的时间戳(日期/时间)系统?

LibreOffice Calc / OpenOffice Calc 电子表格应用程序使用的时间戳(日期/时间)系统?

LibreOffice Calc / OpenOffice Calc 使用什么系统将时间戳(日期/时间)表示为数字?

显然他们不使用标准整数大纪元时报在计算机编程语言和许多操作系统(例如 Linux 和 Unix)中很常见。

查看此类值的最简单方法是输入=NOW()电子表格单元格,并将其格式化为“一般的”数字。

答案1

LibreOffice Calc 使用什么系统将时间戳表示为数字?

关于 Calc 日期和时间函数的一般信息

Calc 使用 1899-12-30 作为默认开始日期(第 0 天)但您可以转到工具 ▸ 选项 ▸ LibreOffice Calc ▸ 计算来选择其他开始日期;但是,除非您对与旧版电子表格应用程序的兼容性有特定要求,否则我们建议您不要更改此设置。如果您在不同的电子表格之间复制和粘贴包含日期值的单元格,请检查两个文档是否设置为使用相同的开始日期,以避免显示的日期发生意外更改。

(重点是我的)

负日期时间序列号对应于早于 Calc 开始日期的日期。Calc 使用公历计算所有追溯到 1582 年 10 月 15 日的日期。前一天是 1582 年 10 月 4 日,Calc 使用儒略历计算更早的日期。

来源:文档/计算函数/DATE - 文档基金会维基


那么为什么是1899-12-30?

可能是由于历史原因(双关语),因为 Lotus 1-2-3 中存在错误。

实际上,这个数字比实际天数大一。这是因为 Excel 的行为就像日期 1900-Feb-29 存在一样。但实际上并不存在。1900 年不是闰年(2000 年是闰年)。在 Excel 中,1900-Feb-28 后的第二天是 1900-Feb-29。实际上,1900-Feb-28 后的第二天是 1900-Mar-1。这不是“错误”。事实上,这是设计使然。Excel 以这种方式工作,因为它确实是 Lotus 123 中的一个错误。Excel 推出时,123 几乎占据了整个电子表格软件市场。为了完全兼容,微软决定保留 Lotus 的 bug。从 123 切换到 Excel 的用户无需对其数据进行任何更改。只要您的所有日期都晚于 1900 年 3 月 1 日,就不必担心这个问题。

(重点是我的)

来源:为什么 Access / SQL Server 中的零日期是 1899-12-30 而不是 12/31?回答韋克爾

也可以看看我的第一篇 BillG 评论 – Joel 谈软件将通量电容器设置为 1899 年 12 月 30 日 - 每日 WTF

看起来这个“传统”从 Excel 延续到了 LibreOffice Calc。


如何将 LibreOffice 日期转换为标准整数纪元时间?

如果你想将 LibreOffice 日期转换为标准纪元日期(自 1970 年以来的秒数),请参阅如何在 Libreoffice calc 中将格式化的日期转换为 unix 纪元回答有知觉的肉体

相关内容