import java.util.*;
class T1{
private int years;
private Date createDate;
private Date nowDate;
public static void main (String[] args){
T1 tt = new T1();
tt.setCreateDate(12-20-2003);
System.out.println(tt.getYear());
}
public int getYear(){
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(createDate);
years = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR);
return years;
}
public void setCreateDate(Date createDate){
this.createDate = createDate;
}
}
好像在格式转换的地方有问题,但是不知道该怎么改
求助!
需要先把字符串转成Date类型,main可以参考如下试下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
上面的包先加上
public static void main(String[] args) {
DateTest tt = new DateTest();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
tt.setCreateDate(format.parse("2003-12-20"));
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(tt.getYear());
}
/**
* 判断两个时间的相差年数
* @param date1
* @param date2
* @return
*/
public static int getYearDiff(Date date1, Date date2){
if (date1 == null || date2 == null) {
return 0;
}
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(date1);
int year1 = calendar1.get(Calendar.YEAR);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(date2);
int year2 = calendar2.get(Calendar.YEAR);
return Math.abs( year1 - year2);
}
tt.setCreateDate(12-20-2003);这里是要传入一个Data进去的。
格式确实是有问题,new Date("12-20-2003")这个格式是创建不了date的,
要格式换一下。
https://blog.csdn.net/xzp_12345/article/details/79438006这里有个格式转换的类,可以用一下,main方法里面:
ComDate comDate = new ComDate();
Date date = DateUtil.parseStrToDate("2012-02-12",DateUtil.DATE_FORMAT_YY_MM_DD);
comDate.setCreateDate(date);
return comDate.getYear();
就OK了!