计算中的时间格式不同?

时间:2012-07-19 04:12:17

标签: datetime time

我正在组合一个功能,我可以轻松地在计算中找到的标准时间格式之间进行转换。

这是我头脑中的一些:

  • Unix时间(自1970年1月1日午夜起的秒数)
  • JavaScript中的Unix时间(自1970年1月1日午夜以来的毫秒数)
  • MySQL DATETIME(YYYY-MM-DD HH:MM:SS)

还有哪些其他标准格式?在网上有这个列表吗?

2 个答案:

答案 0 :(得分:1)

Common Lisp纪元,即自1900-01-01 00:00:00 UTC开始以来的秒数。 此外,普通整数很常见:如2012-07-10 -> 20120710U或甚至二进制编码的小数(至少在64位系统上):2012-07-12 -> 0x0200010200070102ULL

后一种解决方案的优势显然是您可以轻松地在打印和内部表示之间来回切换,并且关系(<>==)也可以工作。您也可以说2012-06-002012-00-01之类的内容(分别省略日期或月份)。

缺点是当你想要增加1天时,你需要更多魔法。另一方面,可以用一种有意义的方式定义add-1-month,这是你用纪元表示无法做到的。

修改
想出更多:

  • 如果您正在进行日历无关的计算,您可能会使用朱利安日期2451545大约是2000-01-01 12:00:00 UTC
  • Matlab使用自0000-01-01以来的公式日历中的小数天

深入了解单个软件特定日期表示列表,您可能会填写整本书。

答案 1 :(得分:0)

http://en.m.wikipedia.org/wiki/ISO_8601 - ISO日期格式。

但是,大多数语言已经为这些东西准备了标准工具......你确定你不会不必要地这样做吗?