LocalDate#toDateMidnight
的javdoc内容如下:
午夜在某些时区中不存在的事实似乎足以避免完全使用DateMidnight
(假设您的代码未使用固定的时区,而该时区不存在这种DST情况,并且永远不需要在其中使用其他时区,这一事实似乎已足够。 future )。
但是,不建议弃用DateMidnight
,并且javadoc中没有针对DateMidnight
类本身的类似建议或警告。此外,DateMidnight
构造函数愉快地接受一个即时和时区,以使在给定的一天不存在午夜,而不是像IllegalArgumentException
那样抛出LocalDate#toDateMidnight
。生成的DateMidnight
的行为类似于DateTime
,只是在一天的开始有时间。
如果在给定的一天中不存在午夜,为什么LocalDate#toDateMidnight
引发异常而DateMidnight
构造函数不存在?推荐的DateMidnight
用例是什么?
最佳答案
没有充分的理由使用DateMidnight
。 LocalDate
是更好的选择。那是因为午夜不会在某些时区每年发生一次,这完全破坏了类的可用性,并在应用程序中创建了错误。
构造函数已得到修复,以避免出现最严重的问题,但是,看到内部毫秒值指向01:00的DateMidnight
对象并不十分理想。