【问题标题】:What value ranges are supported by major datetime libraries?主要日期时间库支持哪些值范围?
【发布时间】:2018-03-08 12:12:56
【问题描述】:

我正在寻找不同编程语言的典型时间库支持的内部数据表示和最早/最晚日期的概述。

我记得不久前读过一个有关该内容的网页,但在经过数十次 Google 搜索词优化后再也找不到它。

【问题讨论】:

  • 根据我们的on-topic 指导,“有些问题仍然是题外话,即使它们属于上面列出的类别之一:...向我们提问的问题推荐或查找书籍、工具、软件库、教程或其他场外资源是题外话..."
  • 我想描述不是很清楚,我试图改写。我不想寻找场外资源。

标签: date datetime time api-design


【解决方案1】:

我没有看到所有主要库的代码来确定这一点,但我猜它们中的许多都将数据存储为字段,其中大多数是数字,例如年、月、日、小时、分钟、等等

限制是各个数值类型的上限/下限,或者是一些人为的值(例如“100 万年”代表“非常遥远的未来”)。

我认为这也取决于所代表的类型:

  • 如果类型仅表示本地日期(日/月/年,没有小时,也没有时区/偏移量),那么限制应该是用于存储年份值的类型的上限/下限,或者一些人为的价值。
  • 如果类型表示时间戳(自 unix 纪元以来的秒数/毫秒/API 支持的任何精度),则限制可以是用于存储此值的类型的最大值,或一些人为的极限值。

等等。但上述每种情况可能会给您不同的限制,不同类型的限制之间的一致性将取决于 API。

这就是你要问的吗?


某些 API(例如 Java 中的 API)记录了每种类型的限制:

并注意每种类型的限制有何不同。

【讨论】:

  • 不完全是。我熟悉一般概念和典型的时代、最小值和最大值。我想获取实际数据,例如 Java 8 Date-Time API 的范围从 -999999999-01-01T00:00:00+999999999-12-31T23:59:59.999999999 等。
  • 查看上面的2个javadoc链接,注意每种类型都有不同的限制值。我只放了 2 个,但请查看 java.time 包以查看所有类型及其各自的限制。在这种情况下,我同意 nubz 的观点,您可以通过查看 API 来解决这个问题,对于在文档中提供此信息的库 - 对于其他库,唯一的方法是获取源代码。
猜你喜欢
  • 2018-11-20
  • 2013-12-06
  • 2023-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 2015-07-10
  • 1970-01-01
相关资源
最近更新 更多