不推荐使用 java.util.Date 类的参数化构造函数。有什么替代方案?

2022-09-01 13:36:45

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

感谢您的帮助。


答案 1

注意:这个答案写于2009年。从那时起,它已成为Java中首选的日期/时间API。java.time


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

如果绝对必要,请使用java.util.Calendar,并在需要时将其转换为。Date


答案 2

日历!

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

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

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

cal.add(Calendar.HOUR, 2);
cal.add(Calendar.MONTH, -5);

最后,如果你想要一个日期:

cal.getTime();