【问题标题】:Java: why TimeUnit have missing enums?Java:为什么 TimeUnit 缺少枚举?
【发布时间】:2012-06-07 16:45:56
【问题描述】:

我只是想知道,为什么 Java 的 TimeUnit 类中缺少一些枚举?

实际上最大时间单位是 DAY 而我想使用诸如 WEEK、YEAR 之类的东西...

【问题讨论】:

  • 极限在哪里?两周呢?禧年?泽秒?
  • 另外考虑到一年不是固定的,它也不适合。由于该类的记录用法主要用于通知基于时间的方法,因此超过一天的任何时间对于预期用途来说可能都是不合理的。

标签: java jakarta-ee time


【解决方案1】:

TimeUnit.DAYS 常量表示 24 小时的间隔,而不是 日历日(午夜到午夜)。超出一天(一周、一个月、一年)的任何时间都是日历单位,而不是时间单位。日历单位的持续时间取决于所使用的日历:例如,当夏令时生效和失效时,一周可以长或短一小时,闰年长一天,等等。这就是为什么在 TimeUnit 枚举中包含日历单位没有意义。

【讨论】:

【解决方案2】:

在 Java 8 ChronoUnit 中,您可以在一个枚举中拥有 NANOS(纳秒)和 CENTURIES、MILLENIA 甚至 FOREVER 之间的所有常用时间单位:https://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoUnit.html (参见 Julien Kronegg 对所选答案的评论)

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效
  • 它是javadoc,如果它消失了,就意味着java不再使用了。如果特定链接消失了,那么通过简单的谷歌搜索很容易找到新链接。我想我的答案已经很清楚了。
  • 对不起,我不知道。请自己做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-12
相关资源
最近更新 更多