標籤:
轉載請註明出處。謝謝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
著作權聲明:本文部落格原創文章,部落格,未經同意,不得轉載。
java擷取日期之間的差異