この記事では、将来の参照に一般的に使用される日付を比較する一般的な方法を共有しています。
ウォームアップ:現在の時間を取得します
SimpleDateFormat df = new SimpleDateFormat( "yyyy-mm-dd hh:mm:ss"); // set date format
string nowdate = df.format(new date()); // new date()は現在のシステム時間を取得することです
注:著者は、日付タイプは文字列型ほど良くないと常に考えていたため、次の比較はすべて文字列型の日付に関するものです。あなたが本当に頑固な場合は、OK、ここに日付を文字列に変換する方法があります:
SimpleDateFormat df = new SimpleDateFormat( "yyyy-mm-dd hh:mm:ss"); // set date format
文字列date = df.format(日付タイプ時刻);
1。2つの文字列タイプの日付のサイズの比較
public static int compare_date(string date1、string date2){dateformat df = new simpledateFormat( "yyyy-mm-dd hh:mm:ss"); try {date dt1 = df.parse(date1);日付dt2 = df.parse(date2); if(dt1.gettime()> dt2.getTime()){system.out.println( "dt1 before dt2");返品1; } else if(dt1.gettime()<dt2.gettime()){system.out.println( "dt1はdt2"); return -1; } else {return 0; }} catch(例外例外){exception.printstacktrace(); } return 0; } 2。2つの文字列型の日付で異なる日数を返します
public static int daysbetween(string smdate、string bdate){simpledateformat sdf = new simpledateFormat( "yyyy-mm-dd");カレンダーcal = charend.getInstance(); long time1 = 0; long time2 = 0; try {cal.settime(sdf.parse(smdate)); time1 = cal.getTimeInmillis(); cal.settime(sdf.parse(bdate)); time2 = cal.gettimeinmillis(); } catch(Exception e){e.printstacktrace(); } long bety_days =(time2-tipe1)/(1000*3600*24); return integer.parseint(string.valueof(bety_days)); }3。2つの文字列間で異なる時間数を返します
public static int daysbetween2(string starttime、string endtime){simpledateformat sdf = new simpledateFormat( "yyyy-mm-dd hh");カレンダーcal = charend.getInstance(); long time1 = 0; long time2 = 0; try {cal.settime(sdf.parse(starttime)); time1 = cal.getTimeInmillis(); Cal.Settime(SDF.Parse(EndTime)); time2 = cal.gettimeinmillis(); } catch(Exception e){e.printstacktrace(); } long bety_days =(time2-tipe1)/(1000*3600); return integer.parseint(string.valueof(bety_days)); }4. 2つの日付の重複日を計算します
/ ** * 2つの日付間のオーバーラップの日付を計算 * @param str1 start date1 * @param str2 end date1 * @param str3 start date2 * @param str4 end date2 * @return * @return */ public static map <string <string> object> compationarrq(string str1、string str2、string str4)throws exception dateformat df = new SimpledateFormat( "yyyy-mm-dd"); string startdate = ""; string enddate = ""; try {date dt1 = df.parse(str1);日付dt2 = df.parse(str2);日付dt3 = df.parse(str3);日付dt4 = df.parse(str4); if(dt1.gettime()<= dt3.gettime()&& dt3.gettime()<= dt2.gettime()&& dt2.gettime()<= dt4.gettime()){mesg = "f"; // coincid startdate = str3; enddate = str2; } if(dt1.gettime()> = dt3.gettime()&& dt3.gettime()<= dt2.gettime()&& dt2.gettime()<= dt4.gettime()){mesg = "f"; // coincid startdate = str1; enddate = str2; } if(dt3.getTime()<= dt1.getTime()&& dt1.getTime()<= dt4.getTime()&& dt4.getTime()<= dt2.gettime()){mesg = "f"; // coincid startdate = str1; enddate = str4; } if(dt3.getTime()<= dt4.getTime()&& dt4.getTime()<= dt2.getTime()){mesg = "f"; //一致startdate = str1; enddate = str4; } if(dt3.getTime()> = dt1.getTime()&& dt1.getTime()<= dt4.getTime()&& dt4.getTime()<= dt2.gettime()){mesg = "f"; //偶然のstartdate = str3; enddate = str4; } system.out.println(startdate+"----"+enddate); } catch(parseexception e){e.printstacktrace();新しいparseexception(e.getmessage()、0)を投げる; } catch(Exception e){e.printstacktrace();新しい例外をスロー(e); } map <string、object> map = new hashmap <string、object>(); map.put( "startdate"、startdate); map.put( "enddate"、enddate);マップを返します。 }上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。