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("\n第一次的时间" + sdf.parse(firstTime)); System.out.println("\n第二次的时间" + 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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。