我来自c#世界,所以对Java还不是很有经验。Eclipse刚刚告诉我Date已弃用:

Person p = new Person();
p.setDateOfBirth(new Date(1985, 1, 1));

为什么?应该用什么(尤其是在上述情况下)来代替呢?


当前回答

我偶然发现这个问题是一个新问题的重复,该问题询问在特定的年、月和日获得日期的非弃用方法是什么。

到目前为止,这里的答案是使用Calendar类,这在Java 8出现之前是正确的。但是从Java 8开始,这样做的标准方法是:

LocalDate localDate = LocalDate.of(1985, 1, 1);

如果你真的需要java。util。约会,你可以使用这个问题中的建议。

要了解更多信息,请查看Java 8的API或教程。

其他回答

new GregorianCalendar(1985, Calendar.JANUARY, 1).getTime();

(java -8之前的方式)

不建议使用特定的Date构造函数,而应该使用Calendar。 JavaDoc for Date描述了哪些构造函数不推荐使用,以及如何使用Calendar替换它们。

由于Date构造函数已弃用,您可以尝试此代码。

import java.util.Calendar;

  Calendar calendar = Calendar.getInstance();
     calendar.set(Calendar.HOUR_OF_DAY, 6);// for 6 hour
     calendar.set(Calendar.MINUTE, 0);// for 0 min
     calendar.set(Calendar.SECOND, 0);// for 0 sec
     calendar.set(1996,0,26);// for Date [year,month(0 to 11), date]

    Date date = new Date(calendar.getTimeInMillis());// calendar gives long value

    String mConvertedDate = date.toString();// Fri Jan 26 06:00:00 GMT+05:30 1996

Date本身没有被弃用。它的很多方法都是。详情请看这里。

请改用java.util.Calendar。

我偶然发现这个问题是一个新问题的重复,该问题询问在特定的年、月和日获得日期的非弃用方法是什么。

到目前为止,这里的答案是使用Calendar类,这在Java 8出现之前是正确的。但是从Java 8开始,这样做的标准方法是:

LocalDate localDate = LocalDate.of(1985, 1, 1);

如果你真的需要java。util。约会,你可以使用这个问题中的建议。

要了解更多信息,请查看Java 8的API或教程。