java中获取日期的差值

来源:互联网 发布:淘宝旗舰店查真假 编辑:程序博客网 时间:2024/05/22 05:12


转载请注明出处,谢谢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;//实例化CalendarCalendar 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类型放入Calendarcalendar.setTime(sdf.parse(firstTime));calendar2.setTime(sdf.parse(secondTime));while (calendar.compareTo(calendar2) > 0) {//Calendar类型中的日期+1calendar2.add(Calendar.DATE, 1);day++;}return day;}}


输出结果为

第一次的时间Wed Dec 24 00:00:00 CST 2014第二次的时间Sat Dec 20 00:00:00 CST 20144


注意:

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


1 1
原创粉丝点击