LocalDate#toDateMidnight的javdoc内容如下:



午夜在某些时区中不存在的事实似乎足以避免完全使用DateMidnight(假设您的代码未使用固定的时区,而该时区不存在这种DST情况,并且永远不需要在其中使用其他时区,这一事实似乎已足够。 future )。

但是,不建议弃用DateMidnight,并且javadoc中没有针对DateMidnight类本身的类似建议或警告。此外,DateMidnight构造函数愉快地接受一个即时和时区,以使在给定的一天不存在午夜,而不是像IllegalArgumentException那样抛出LocalDate#toDateMidnight。生成的DateMidnight的行为类似于DateTime,只是在一天的开始有时间。

如果在给定的一天中不存在午夜,为什么LocalDate#toDateMidnight引发异常而DateMidnight构造函数不存在?推荐的DateMidnight用例是什么?

最佳答案

没有充分的理由使用DateMidnightLocalDate是更好的选择。那是因为午夜不会在某些时区每年发生一次,这完全破坏了类的可用性,并在应用程序中创建了错误。

构造函数已得到修复,以避免出现最严重的问题,但是,看到内部毫秒值指向01:00的DateMidnight对象并不十分理想。

07-26 08:16