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

Date 日期与时间戳-有关日期格式的最佳实践,date,architecture,timestamp,language-agnostic,Date,Architecture,Timestamp,Language Agnostic,这篇文章的意思是语言不可知论。在设计包含日期的API时,您应该考虑什么? 具备以下条件的可能优势是什么: 2016-11-01T20:44:39Z而不是像这样以毫秒为单位的时间戳:1583749154495 根据,即使RFC3339格式也可能不同。为什么不在所有地方使用时间戳,例如在构建REST后端API时? 另一个可能的优点是,您将时间戳作为一个数字发送到前端,然后前端库会处理诸如时区之类的事情,向每个用户显示调整后的日期输出。我绝对建议使用UTC日期时间来指示特定的时间点,即使时间戳是更简洁

这篇文章的意思是语言不可知论。在设计包含日期的API时,您应该考虑什么? 具备以下条件的可能优势是什么: 2016-11-01T20:44:39Z而不是像这样以毫秒为单位的时间戳:1583749154495

根据,即使RFC3339格式也可能不同。为什么不在所有地方使用时间戳,例如在构建REST后端API时?
另一个可能的优点是,您将时间戳作为一个数字发送到前端,然后前端库会处理诸如时区之类的事情,向每个用户显示调整后的日期输出。

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

可读性:您的UI和/或后端服务不是这些时间戳的唯一使用者。这些时间戳最终会出现在日志中,而人类可读的格式会有很大帮助 兼容性:根据使用的方法和平台,使用时间的积分表示可能会导致错误: 合同的大小:如果您发送大量的时间戳,那么像整数时间戳这样更简洁的格式可能是有益的。实际上,在99.9%的案例中,这不应该成为一个问题。
我绝对建议您坚持使用已知的、可读的、通用的表示时间的标准,除非您的需求明确要求您远离该标准。

已知的、可读的、通用的标准-听起来就像您所说的,只是没有提及ISO编号:-虽然从新纪元开始的秒数可能被认为是相当普遍的,尽管它们来自Unix和其他操作系统,但毫秒或微秒更具偏见。完全与语言和平台无关。您的示例2016-11-01T20:44:39Z是ISO 8601。