2012-07-19 85 views
2

我在一个函数中可以轻松地在计算中找到的标准时间格式之间进行转换。计算中的不同时间格式?

这里有几关我的头顶部:

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

还有其他的标准格式?网上有没有这个清单?

回答

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天。另一方面,可以用一种有意义的方式定义1个月的附加值,这是你在时代表示法中无法做到的。

编辑
想出了一些:

  • ,如果你正在做的日历无关的计算,你可能诉诸朱利安日期2451545大致2000-01-01 12:00: 00 UTC
  • Matlab的在proleptic阳历使用小数日以来0000-01-01

好潜水到单个软件的具体日期表达你C的列表可能会填满整本书。