日期与时间戳 - 有关日期格式的最佳实践

Dar*_*enn 1 language-agnostic architecture timestamp date

这篇文章的目的是与语言无关。在设计包含日期的 API 时,您应该注意什么?拥有以下可能的优点: 2016-11-01T20:44:39Z而不是像这样以毫秒为单位的时间戳:1583749154495

根据What pattern should be used to parse RFC 3339 datetime strings in java,即使 RFC 3339 格式也可能有所不同。为什么不在所有地方都使用时间戳,例如在构建 REST 后端 API 时?这样做的另一个可能的优点是,您将时间戳作为数字发送到前端,然后前端库负责处理时区等事务,向每个用户显示调整后的日期输出。

SKl*_*ous 8

我绝对建议使用 UTC 日期时间来指示特定时间点,即使时间戳是更简洁的格式。但需要考虑的事情是:

  1. 可读性:您的 UI 和/或后端服务并不是这些时间戳的唯一使用者。这些时间戳最终会记录在日志中,而人类可读的格式会很有帮助
  2. 兼容性:使用时间的积分表示可能会导致错误,具体取决于所使用的方法和平台: https: //en.wikipedia.org/wiki/System_time
  3. 合约大小:如果您发送大量时间戳,那么更简洁的格式(例如整数时间戳)可能会有所帮助。实际上,99.9% 的情况下这不应该是一个问题。

我绝对建议您坚持使用已知的、可读的、通用的时间表示标准,除非您的需求明确要求您放弃该标准。

  • *一个已知的、可读的、通用的标准* - 在我看来,就像你说的 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601),只是没有提及 ISO 编号。:-) (3认同)