LocalDate#toDateMidnight读取的javdoc 如下:
从v1.5开始,建议您避免使用DateMidnight并使用toDateTimeAtStartOfDay(),因为下面有详细说明.
如果默认时区在午夜切换到夏令时,则此方法将引发异常,此LocalDate表示该切换日期.问题是在所需的日期没有午夜这样的时间,因此抛出了这样的例外.
在某些时区中不存在午夜这一事实似乎足以避免DateMidnight完全使用(假设您的代码没有使用已知不具有此DST情况的固定时区,并且永远不需要在其中使用不同的时区未来).
但是,DateMidnight不会弃用,并且DateMidnight类本身的javadoc中没有类似的建议或警告.此外,DateMidnight构造函数愉快地接受即时和时区,使得在给定的一天不存在午夜,而不是投掷IllegalArgumentException类似的LocalDate#toDateMidnight.结果DateMidnight表现为DateTime在一天开始时的时间.
当某个特定日期不存在午夜时,为什么LocalDate#toDateMidnight在DateMidnight构造函数没有的情况下抛出异常?推荐的用例是DateMidnight什么?