当前位置: 首页 > 面试题库 >

建议用于Joda-Time的DateMidnight

庄智
2023-03-14
问题内容

javdoc的LocalDate#toDateMidnight内容如下:

从v1.5开始,由于下面详述的异常,建议您避免使用DateMidnight并使用toDateTimeAtStartOfDay()代替。

如果默认时区在午夜切换为夏时制,并且此LocalDate表示该切换日期,则此方法将引发异常。问题在于,在规定的日期没有午夜这样的时间,因此会引发异常。

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

但是,DateMidnight它不被弃用,并且javadoc中没有针对DateMidnight类本身的类似建议或警告。此外,DateMidnight构造函数愉快地接受一个即时和时区,以使午夜在给定的一天不存在,而不是抛出IllegalArgumentExceptionlike
LocalDate#toDateMidnight。结果在一天开始时的DateMidnight表现就像是DateTime带时间的。

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


问题答案:

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

固定构造函数可以避免出现最严重的问题,但是,看到DateMidnight内部毫秒值指向01:00的对象并不是一件好事。



 类似资料:
  • JodaTime 提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成。 Joda-Time主要的特点包括: 1. 易于使用:Calendar让获取"正常的"的日期变得很困难,使它没办法提供简单的方法,而Joda-Time能够 直接进行访问域并且索引值1就是代表January。 2. 易

  • 问题内容: 如何编写JAX-WS服务,以便我的@WebMethod的@WebParam是类似于DateTime的Joda- Time类?参数上的@XmlTypeAdapter是否可以工作?我正在部署到GlassFish 2.1。 让我澄清这个问题,因为到目前为止,这两个答案都集中在将自定义类型绑定到现有的JAXB类上,这与之相关,但与我要问的问题无关。如何使以下@WebService接受joda

  • 我正在编写一个利用时间的Web应用程序,所以我决定使用Joda库,更具体地说是Joda Time-JSP tags Version 1.1.1(可以在这里找到->www.Joda.org/joda-time-jsptags/) 我的代码是正确的,就站点解释的 <%PageContext.SetAttribute(“now”,new org.joda.time.dateTime());%> foll

  • 问题内容: 我有准备好的陈述 其中时间是类型的时间戳在的PostgreSQL数据库。 我要插入一个Joda-Time DateTime对象,或者应该说我正在尝试。我找不到将DateTime对象转换为java.sql.Timestamp的方法。我已经阅读了Joda- Time文档,看不到对此的任何引用。 谢谢。 问题答案: 您可以先将Joda DateTime转换为长(自纪元以来的毫秒),然后从中创

  • 问题内容: 使用,可以构建带有日期和时间样式的日期格式化程序: 可以在Joda-Time中使用类似的东西吗? 问题答案: JodaTime内置的标准格式 JodaTime中* 内置了许多标准的 日期 和 时间 格式。 * 这是我使用的一个示例: 请注意。 其他一些选项包括: 表示 中 日期和 短时间 。 表示 短 日期且 没有 时间。 …等等… 完整列表可以在以下位置找到: http://www.

  • 问题内容: 我在我的游戏应用程序中使用Jodatime,但目前不必做来回转换自/至一束和。 由于jodatime已包含在Play发行版中,因此我认为可能有更好的方法来执行此操作。有什么方法可以代替Model字段,从而自动完成转换?还有另一种方法可以简化吗? 问题答案: 对于Hibernate 3,在日期字段中添加以下注释: Hibernate现在将为您完成肮脏的工作。 (确保您的类路径中有joda