yyyymmdd.hhmmss日期时间格式是否有名称?

时间:2019-09-18 09:33:51

标签: date time encoding datetime-format terminology

讨论数据时间格式时,有人向我提到他如何使用浮点数作为yyyymmdd.hhmmss存储日期时间(以人类可读的格式),因此2019-09-18, 11:29:30am会变成20190918.112930

我正试图找出这个人是否发明了自己的格式,或者是否也在其他地方使用(并描述了它)-如果是这样,它怎么被称为...?

4 个答案:

答案 0 :(得分:1)

根据Wikipedia,这类似于ISO 8601,它允许以下所有日期和时间的总和:

  • 2019-09-18T09:18:26 + 00:00
  • 2019-09-18T09:18:26Z
  • 20190918T091826Z

除了用T代替将日期与日期分开的.并删除时区信息。

该特定格式在yyyymmdd.HHMMSS或与C兼容的strftime()兼容%Y%m%d.%H%M%S格式中的普及程度均受到限制。


编辑

就按照您建议的方式使用float作为日期和时间,取决于精度和machine representation。 如果系统遵循IEEE 754 basic standard(这是大多数现代C编译器所坚持的目标),则至少需要float64

但是,这样做并不普遍。 这可能部分是因为可能难以正确预测时间信息的准确性,并且其比特效率不如Unix time。 鉴于它唯一的优点是可以依靠sprintf()中的标准%f,所以只有在strftime()不可用或性能瓶颈的情况下,我才会看到它的优势。

答案 1 :(得分:1)

尽管他可能自己想出了它,但它也是zipinfo中的一种格式化选项。

manual并未明确命名,但将其描述为可排序的十进制格式十进制格式

答案 2 :(得分:1)

不确定我们是否在谈论SQL日期格式。如果是这样,则此日期格式将出现在SQL语句中。 不确定名称,它以不同的方式调用:非标准,ISO,其他格式等。 在PHP中也存在。

答案 3 :(得分:1)

可能是土布

我见过很多日期和时间格式,而且我以前从未见过。我的想法是,他的家伙或他的组织是自己发明的。

编辑:感谢您在评论中进行确认。由于注释并不总是在Stack Overflow上永久存在,因此我在此引用您的意思:

  

最后得到消息来源的确认:这确实是土布。

顺便说一句,我不喜欢它。 float在内部以二进制格式存储,只有将其格式化为十进制后,它才变得可读。使用float作为“可读的”日期和时间并不是浮点数格式的目的,这是一个黑客。

使用ISO 8601

对于人类可读的格式,我建议使用ISO8601。这里2019-09-18, 11:29:30am变为2019-09-18T11:29:30。甚至更好并且仍在ISO 8601内,转换为UTC并附加一个Z以表示UTC。因此,如果您原来的时间在欧洲/柏林时区,它将变为2019-09-18T09:29:30Z。如您所见,ISO 8601比您朋友的格式更具可读性,并且可以按字符串排序(只要年份不超过9999)。