我来自c#世界,所以对Java还不是很有经验。Eclipse刚刚告诉我Date已弃用:
Person p = new Person();
p.setDateOfBirth(new Date(1985, 1, 1));
为什么?应该用什么(尤其是在上述情况下)来代替呢?
我来自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或教程。
其他回答
您可以使用Calendar类在代码中创建类似new Date(年、月、日)的方法。
private Date getDate(int year,int month,int date){
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month-1);
cal.set(Calendar.DAY_OF_MONTH, day);
return cal.getTime();
}
它将像Date的已弃用构造函数一样工作
我从Java安全代码指南中得到了这个
本节中的示例广泛使用java.util.Date 一个可变API类的例子。在应用程序中是这样的 最好使用新的Java日期和时间API (Java . Time .*) 被设计为不可变的。
Date本身没有被弃用。它的很多方法都是。详情请看这里。
请改用java.util.Calendar。
类似于binnyb的建议,您可以考虑使用较新的Calendar > GregorianCalendar方法。请看这些最新的文档:
http://download.oracle.com/javase/6/docs/api/java/util/GregorianCalendar.html
我偶然发现这个问题是一个新问题的重复,该问题询问在特定的年、月和日获得日期的非弃用方法是什么。
到目前为止,这里的答案是使用Calendar类,这在Java 8出现之前是正确的。但是从Java 8开始,这样做的标准方法是:
LocalDate localDate = LocalDate.of(1985, 1, 1);
如果你真的需要java。util。约会,你可以使用这个问题中的建议。
要了解更多信息,请查看Java 8的API或教程。