替换java.util.Date(year,month,day)的公认方法是什么
问题内容:
我正在尝试做一些非常简单的事情,但是开始意识到Java中的日期有点雷区。我想要的是让三个整数(一年,一个月和一个日期)通过的组创建一些Date
对象,对其进行一些简单的测试(沿着日期B之前的日期A和1990年1月1日之后的行A)将它们java.sql.Date
传递给对象,然后通过JDBC将其传递给数据库。
一切都非常简单,并且可以使用java.util.Date(int year,int month,int day)
构造函数正常运行。当然,该构造函数已弃用,我想避免在正在编写的新代码中使用已弃用的调用。但是,解决这个简单问题的所有其他选择似乎都非常复杂。如果不使用折旧的构造函数,真的有没有简单的方法可以执行我想要的操作?
我知道所有与Java日期有关的问题的标准答案都是“使用joda时间”,但是我真的不想开始针对此类看似微不足道的问题引入第三方库。
问题答案:
想法是使用Calendar
类,如下所示:
Calendar cal = Calendar.getInstance();
cal.set(year, month, date);
Date date = cal.getTime();
的确,如果您检查所提到的构造函数的Javadoc
,则完全是建议的内容:
Date(int year, int month, int date)
Deprecated. As of JDK version 1.1, replaced by Calendar.set(year + 1900, month, date) or GregorianCalendar(year + 1900, month, date).
或者…使用JodaTime :-)。