java 两个时间相减

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
2个这种格式的时间戳,怎么判断时间相减得到天数?

先转成Date 再获取毫秒数来减

java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Calendar c = Calendar.getInstance();
String date1 = "2014-10-10 00:00:00";
String date2 = "2015-10-10 00:00:00";
c.setTime(sdf.parse(date1));
int y1 = c.get(Calendar.YEAR);
int m1 = c.get(Calendar.MONTH);


c.setTime(sdf.parse(date2));
int y2 = c.get(Calendar.YEAR);
int m2 = c.get(Calendar.MONTH);

int y = Math.abs(y2 - y1);
int m = y * 12 + Math.abs(m1-m2);

long d1 = sdf.parse(date1).getTime();
long d2 = sdf.parse(date2).getTime();
int d = (int) (Math.abs(d2-d1) / (1000 * 60 * 60 * 24));

System.out.println("相差年: " + y);
System.out.println("相差月: " + m);
System.out.println("相差天: " + d);
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-03-23
  Date d1 = sdf.parse("201501231459");
  Date d2 = sdf.parse("201503231459");
  long times1 = d1.getTime();
  long times2 = d2.getTime();
  int days = (int)((times2-times1)/1000/60/60/24);

相似回答