gpt4 book ai didi

java - 推荐用于 Joda-Time 的 DateMidnight

转载 作者:IT老高 更新时间:2023-10-28 20:46:16 24 4
gpt4 key购买 nike

LocalDate#toDateMidnight 的 javdoc 内容如下:

As from v1.5, you are recommended to avoid DateMidnight and use toDateTimeAtStartOfDay() instead because of the exception detailed below.

This method will throw an exception if the default time zone switches to Daylight Savings Time at midnight and this LocalDate represents that switchover date. The problem is that there is no such time as midnight on the required date, and as such an exception is thrown.

某些时区不存在午夜这一事实似乎足以避免完全使用 DateMidnight (假设您的代码未使用已知不存在这种 DST 情况的固定时区并且将来永远不需要使用不同的时区)。

但是,DateMidnight 并没有被弃用,并且在 DateMidnight 类本身的 javadoc 中没有类似的建议或警告。此外,DateMidnight 构造函数很乐意接受即时和时区,这样在给定的日期不存在午夜,而不是像 LocalDate#toDateMidnight< 那样抛出 IllegalArgumentException/。生成的 DateMidnight 的行为类似于 DateTime,时间在一天的开始。

当某一天不存在午夜时,为什么 LocalDate#toDateMidnight 会抛出异常而 DateMidnight 构造函数却不会? DateMidnight 的推荐用例是什么?

最佳答案

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

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

关于java - 推荐用于 Joda-Time 的 DateMidnight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17665921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com