不推荐使用java.util.Date类的参数化构造函数。有什么选择?

问题描述 投票:26回答:7

我可以用什么来代替它,new Date(2009, 12, 9)

感谢您的帮助。

java date deprecated
7个回答
25
投票

注意:此答案写于2009年。此后,java.time已成为Java中首选的日期/时间API。


理想情况下,改用Joda Time。它是内置API的无限优越的API。然后,您需要根据自己的确切要求在LocalDateTimeLocalDateTime之间进行选择(这是一个复杂的区域-我不会尝试用一两句话来进行总结,但是DateTime做得很好)。

如果绝对必要,请使用DateTime并在需要时将其转换为docs


25
投票

java.util.Calendar

Date

注意,我没有在12月放12,因为它实际上是11(一月是0)。

然后,您可以使用:]轻松添加或删除秒,分钟,小时,天,月或年。

Calendar !

最后,如果要日期:

Calendar cal = Calendar.getInstance();
cal.set(2009, Calendar.DECEMBER, 12);

17
投票

[如果您查看cal.add(Calendar.HOUR, 2); cal.add(Calendar.MONTH, -5); ,它将指示您使用cal.getTime();


8
投票

您也可以使用Calendar对象:


4
投票

Tim,在您的评论中,您提到您是在GXT上下文中执行此操作的-即在GWT客户端代码中。 GWT不支持GregorianCalendar,因此您很可能无法通过GWTCompiler放置JodaTime(您可能可以,但您确实要这样做)。



2
投票

不幸的是,Java中的日期支持是完全糟糕的。正式地,您可能必须使用Calendar来执行此操作,但是我认为这不是必需的。就像其他人提到的那样,Joda时间要好很多,但仍不如Ruby on Rails中的日期容易使用。

© www.soinside.com 2019 - 2024. All rights reserved.