java获取日期之间的差异


转载请注明出处。谢谢http://blog.csdn.net/harryweasley/article/details/42121485


当想到要计算差值。我们肯定想的是“2014.12.14”-“2014.12.20”=4,这个方案,可是java并没有直接给我们这个方案,所以我想的是,将字符串转化为Date类型,继而又将

date转化为Calendar类型,通过Calendar.add()方法来解决这种方法。


package lgx.java.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class DataDemo {
	public static void main(String[] args) throws ParseException {

		String firstTime = "2014.12.24 ";
		String secondTime = "2014.12.20";

		System.out.println(getDay(firstTime, secondTime));
	}

	private static int getDay(String firstTime, String secondTime)
			throws ParseException {
		int day = 0;
		//实例化Calendar
		Calendar calendar = new GregorianCalendar();
		Calendar calendar2 = Calendar.getInstance();
		//通过SimpleDateFormat将字符串解析为Date类型
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
		sdf.parse(firstTime);
		sdf.parse(secondTime);
		
		System.out.println("
第一次的时间" + sdf.parse(firstTime));
		System.out.println("
第二次的时间" + sdf.parse(secondTime));
		
		//将Date类型放入Calendar
		calendar.setTime(sdf.parse(firstTime));
		calendar2.setTime(sdf.parse(secondTime));
		
		while (calendar.compareTo(calendar2) > 0) {
			
			//Calendar类型中的日期+1
			calendar2.add(Calendar.DATE, 1);
			day++;
		}
		return day;
	}

}


输出结果为

第一次的时间Wed Dec 24 00:00:00 CST 2014

第二次的时间Sat Dec 20 00:00:00 CST 2014
4


注意:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");

sdf.parse(firstTime)这里我必需要说一下。转化的字符串和simpleDateFormat一定要是一模一样,我刚刚就犯了一个错误。将SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");写成这个样子,就会抛异常了。


代码中已经进行了凝视,应该能够看得明确。


关于java的日期相关类,你能够点击这里http://blog.csdn.net/harryweasley/article/details/41977633


版权声明:本文博客原创文章,博客,未经同意,不得转载。

原文地址:https://www.cnblogs.com/hrhguanli/p/4642058.html