我来自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));
为什么?在这种情况下应该使用什么替代方案?
与binnyb建议的类似,您可以考虑使用更新的Calendar > GregorianCalendar方法。请参阅这些更近期的文档:
http://download.oracle.com/javase/6/docs/api/java/util/GregorianCalendar.html
我从Java安全编码指南中得到了这个。
本节中的示例广泛使用java.util.Date,因为它是可变API类的示例。在应用程序中,最好使用新的Java日期和时间API(java.time.*),该API已被设计为不可变。
使用Calendar
类,你可以在代码中创建一个类似new Date(year,month,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
构造函数一样工作。Instant
和ZonedDateTime
。 - Basil Bourquenew GregorianCalendar(1985, Calendar.JANUARY, 1).getTime();
(Java 8之前的方式)