yyyymmdd.hhmmss 日期时间格式有名称吗?
Does the yyyymmdd.hhmmss date time-format have a name?
讨论数据时间格式时,有人向我提到他如何使用浮点数存储日期时间(以人类可读的格式)作为 yyyymmdd.hhmmss
,因此 2019-09-18, 11:29:30am
将变为 20190918.112930
我想知道这个人是否发明了他自己的格式,或者它是否也在其他地方使用(和描述)- 如果是,它是怎么称呼的...?
根据维基百科,这类似于 ISO 8601,它允许以下所有日期和时间组合:
- 2019-09-18T09:18:26+00:00
- 2019-09-18T09:18:26Z
- 20190918T091826Z
只是将时间和日期分开的 T
替换为 .
并且删除了时区信息。
该特定格式在 yyyymmdd.HHMMSS
or the C's strftime()
-compatible %Y%m%d.%H%M%S
形式中的受欢迎程度有限。
编辑
至于按照您建议的方式使用 float
作为日期和时间,这取决于精度和 machine representation。
如果系统遵循 IEEE 754 basic standard(这是大多数现代 C 编译器所坚持的),您至少需要 float64
.
然而,这样做并不常见。
这可能部分是因为可能很难正确预测时间信息的准确性,而且它不如 Unix time 那样有效。
鉴于它具有的唯一积极特征是它可以依赖标准 %f
来自 sprintf()
, I would only see it advantageous when strftime()
不可用或性能瓶颈。
虽然他可能自己想出了它,但它也是 zipinfo
中的格式选项。
manual没有明确命名它,而是将其描述为可排序的十进制格式和十进制格式。
不确定我们是否在谈论 SQL 日期格式。如果是这样,则此日期格式存在于 SQL 语句中。
不确定名称,它有不同的称呼方式:非标准、ISO、其他格式等。
也出现在 PHP.
中
大概是土布吧
我见过很多日期和时间格式,我以前没见过这个。我的看法是他的人或他的组织自己发明了它。
编辑: 感谢您在评论中确认。由于 Stack Overflow 上的评论并不总是永久性的,我在这里引用,你说:
Finally got confirmation from the source: it's homespun indeed.
顺便说一句,我不喜欢它。一个float
在内部是以二进制格式存储的,只有格式化成十进制后,它才变得人类可读。使用 float
作为“人类可读”的日期和时间并不是格式化浮点数的本意,这是一种 hack。
使用 ISO 8601
对于人类可读的格式,我推荐 ISO 8601。此处 2019-09-18, 11:29:30am
变为 2019-09-18T11:29:30
。或者更好,并且仍然在 ISO 8601 内,转换为 UTC 并附加一个 Z
来表示 UTC。因此,如果您原来的时间在 Europe/Berlin 时区,它将变为 2019-09-18T09:29:30Z
。如您所见,ISO 8601 比您朋友的格式更易于阅读,并且可以按字符串排序(只要年份不超过 9999)。
讨论数据时间格式时,有人向我提到他如何使用浮点数存储日期时间(以人类可读的格式)作为 yyyymmdd.hhmmss
,因此 2019-09-18, 11:29:30am
将变为 20190918.112930
我想知道这个人是否发明了他自己的格式,或者它是否也在其他地方使用(和描述)- 如果是,它是怎么称呼的...?
根据维基百科,这类似于 ISO 8601,它允许以下所有日期和时间组合:
- 2019-09-18T09:18:26+00:00
- 2019-09-18T09:18:26Z
- 20190918T091826Z
只是将时间和日期分开的 T
替换为 .
并且删除了时区信息。
该特定格式在 yyyymmdd.HHMMSS
or the C's strftime()
-compatible %Y%m%d.%H%M%S
形式中的受欢迎程度有限。
编辑
至于按照您建议的方式使用 float
作为日期和时间,这取决于精度和 machine representation。
如果系统遵循 IEEE 754 basic standard(这是大多数现代 C 编译器所坚持的),您至少需要 float64
.
然而,这样做并不常见。
这可能部分是因为可能很难正确预测时间信息的准确性,而且它不如 Unix time 那样有效。
鉴于它具有的唯一积极特征是它可以依赖标准 %f
来自 sprintf()
, I would only see it advantageous when strftime()
不可用或性能瓶颈。
虽然他可能自己想出了它,但它也是 zipinfo
中的格式选项。
manual没有明确命名它,而是将其描述为可排序的十进制格式和十进制格式。
不确定我们是否在谈论 SQL 日期格式。如果是这样,则此日期格式存在于 SQL 语句中。 不确定名称,它有不同的称呼方式:非标准、ISO、其他格式等。 也出现在 PHP.
中大概是土布吧
我见过很多日期和时间格式,我以前没见过这个。我的看法是他的人或他的组织自己发明了它。
编辑: 感谢您在评论中确认。由于 Stack Overflow 上的评论并不总是永久性的,我在这里引用,你说:
Finally got confirmation from the source: it's homespun indeed.
顺便说一句,我不喜欢它。一个float
在内部是以二进制格式存储的,只有格式化成十进制后,它才变得人类可读。使用 float
作为“人类可读”的日期和时间并不是格式化浮点数的本意,这是一种 hack。
使用 ISO 8601
对于人类可读的格式,我推荐 ISO 8601。此处 2019-09-18, 11:29:30am
变为 2019-09-18T11:29:30
。或者更好,并且仍然在 ISO 8601 内,转换为 UTC 并附加一个 Z
来表示 UTC。因此,如果您原来的时间在 Europe/Berlin 时区,它将变为 2019-09-18T09:29:30Z
。如您所见,ISO 8601 比您朋友的格式更易于阅读,并且可以按字符串排序(只要年份不超过 9999)。