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

为什么大多数java.util.Date方法不推荐使用?

岑彬炳
2023-03-14
问题内容

当您查看java.util.Date类的javadoc时,大多数方法都已弃用。为什么要这样做?


问题答案:

好吧,有两个相关原因。这是对日期和时间概念的非常差的实现,被Calendar班级取代。

Calendar课程尽管有所改进,但也有很多不足之处,因此对于认真的Date / Time工作,每个人都推荐Joda-
Time
。Java 8

引入了新的java.time。*软件包,该软件包受JSR-310定义的Joda-
Time启发,旨在取代旧的Date / Calendar类。

编辑:针对为什么实施效果不佳的具体问题,有很多原因。JavaDoc总结如下:

不幸的是,这些功能的API不适合国际化。

除了这种普遍的缺陷(涵盖了诸如缺少时区组件以及可以更好地处理日期格式的问题DateFormat以及无法使用非格里高利历法表示的问题)之外,还有一些特定的问题确实伤害了Date类,包括年份与普通时代年份相差1900年的事实。

Calendar有其自身的问题,但是即使早在JDK
1.1上,显然也无法解决问题java.util.Date。尽管Calendar可以说是最糟糕的JDK API,但直到版本7才尝试解决它。



 类似资料:
  • 问题内容: (此问题不同于您为什么要实现finalize()?此问题与从Java平台弃用有关,另一个问题与在应用程序中是否应使用此机制有关。) 为什么在Java 9中不推荐使用该方法? 是的,它可能以错误的方式使用(例如,从垃圾收集中保存对象(虽然仅一次)或尝试关闭其中的某些本机资源(总比不完全关闭要好))以及许多其他方法可能会被错误地使用。 那么,是真的如此危险或绝对没有用,有必要将其逐出Jav

  • 问题内容: 众所周知,Java 中的接口已损坏。造成这种情况的原因很多,我将不再赘述。其他人已经做到了。这也是Java架构师本身的立场。 因此,我的问题是:为什么还不被弃用?如果核心Java团队已确定它已损坏,那么他们还必须考虑过时。他们反对这样做的原因是什么(在Java 8中仍不建议弃用)? 问题答案: 有一个错误在1997年提交给Java的错误数据库有关添加方法,所以将不再是无用的。它以“无法

  • 问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 在这里我已经阅读过有关它的更多信息,不建议使用 http://forum.springsource.org/showthread.php?117227-Missing-Hibernate- Classes-Interfaces-in-spring

  • 问题内容: 我正在将hibernate项目配置为使用第二级缓存提供程序,以便可以利用查询缓存。 我向ehcache添加了一个依赖项: 我认为我要使用的提供程序类是: 在eclipse中查看引用的库时,我在和上都看到了注释。是什么赋予了?我可以使用最新的替代供应商吗? 我正在使用hibernate版本3.4.0.GA,以防万一。 问题答案: 是什么赋予了?我可以使用最新的替代供应商吗? 不推荐使用它

  • 问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 有人可以解释我为什么吗?在hibernate4中,我现在需要执行所有任务,例如提交,关闭,刷新由getHibernateTemplate()方法自动管理的事务? 问题答案: 因为它的主要目的是使Hibernate会话绑定到当前的Spring事务(

  • 问题内容: 现在我正在使用类似 我需要您的意见以最好/最有效的方式对密码进行加密,当然,加密的密码应受PHP 7.xx支持,并且也应可解密,因为我的客户确实希望选择“恢复”密码而不生成新密码一。 问题答案: 最佳做法是对密码进行哈希处理,以使密码不可解密。这使可能已获得对数据库或文件的访问权限的攻击者的处境变得更加困难。 如果必须加密数据并使其可解密,请访问https://paragonie.co