【发布时间】:2022-03-07 21:14:18
【问题描述】:
我正在组合一个函数,可以轻松地在计算中找到的标准时间格式之间进行转换。
以下是我的一些想法:
- Unix 时间(自 1970 年 1 月 1 日午夜开始的秒数)
- JavaScript 中的 Unix 时间(自 1970 年 1 月 1 日午夜以来的毫秒数)
- MySQL 日期时间 (YYYY-MM-DD HH:MM:SS)
还有哪些其他标准格式?网上有没有这个清单?
【问题讨论】:
我正在组合一个函数,可以轻松地在计算中找到的标准时间格式之间进行转换。
以下是我的一些想法:
还有哪些其他标准格式?网上有没有这个清单?
【问题讨论】:
Common Lisp 纪元,即从 1900-01-01 00:00:00 UTC 开始的秒数。
此外,纯整数也很常见:2012-07-10 -> 20120710U 甚至二进制编码的小数(至少在 64 位系统上):2012-07-12 -> 0x0200010200070102ULL。
后一种解决方案的优势显然是您可以非常轻松地在打印和内部表示之间来回切换,并且关系(<、>、==)也可以工作。您还可以说2012-06-00 或2012-00-01 之类的内容(分别省略月份或月份)。
缺点是当你想增加 1 天时,你需要更多的魔法。另一方面,可以以有意义的方式定义 add-1-month,这是您无法使用 epoch 表示来实现的。
编辑
想出了更多:
深入了解单个软件特定日期表示的列表,您可能会写满一本书。
【讨论】:
http://en.m.wikipedia.org/wiki/ISO_8601 - ISO 日期格式。
但是,大多数语言已经为这些东西提供了标准实用程序......你确定你没有不必要地这样做吗?
【讨论】: