为什么期间不可比较

rü-*_*rü- 2 java comparison date

为什么不java.time.Period实现java.lang.Comparable界面?

简单的问题,但答案可能不那么简单:其他常用的时间量java.time.Duration 确实实现Comparable,所以我假设设计师可能会考虑它,但决定反对它.

rü-*_*rü- 10

因为只有几个月normalized(),而不是几天.即,它P30D可能小于,等于或大于P1M,取决于它是否应用于例如1月,2月或3月.

实际上,equals没有做任何归一化,所以P30D不等于P1M.甚至P1Y不等于P12M,这可能是令人惊讶的.

如果你需要比较句号,你需要一种方法来处理 - 在某些情况下 - 你无法决定.或者您使用30天的标准月份,这是财务计算中的常见简化.

BTW:这确实应该在的JavaDoc Period#normalized().