我正在组合一个函数,我可以轻松地在计算中找到的标准时间格式之间进行转换。
以下是我的一些想法:
- 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 日期格式。
但是,大多数语言已经有这些东西的标准实用程序......你确定你没有不必要地这样做吗?