什么是在Java中创builddate的正确方法?

Date类的Java API让我感到困惑。 一切似乎都被弃用,并链接到日历类。 所以我开始使用Calendar对象来做我想用Date做的事情,但直觉上,当我真正想要做的事情是创build和比较两个date时,使用Calendar对象是有点麻烦的。

有一个简单的方法来做到这一点? 现在我呢

Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(0); cal.set(year, month, day, hour, minute, second); Date date = cal.getTime(); // get back a Date object 

你可以使用SimpleDateFormat

 SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Date d = sdf.parse("21/12/2012"); 

但我不知道是否应该被认为比使用日历更正确

优秀的joda时间库几乎总是比Java的Date或Calendar类更好的select。 这里有几个例子:

 DateTime aDate = new DateTime(year, month, day, hour, minute, second); DateTime anotherDate = new DateTime(anotherYear, anotherMonth, anotherDay, ...); if (aDate.isAfter(anotherDate)) {...} DateTime yearFromADate = aDate.plusYears(1); 

你可以试试乔达时间 。