この記事は、主に日付処理のために2つの部分に分割されています。詳細な紹介です。
パート1:日付処理の基本
日付クラス<br />関数:主な関数は、現在の時刻を取得し、日付を標準形式に変換することです
日付date = new date(); SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-mm-dd hh:mm:ss"); string str = sdf.format(date); system.out.println( "2015-10-16 14:59:52");
文字列を日付のタイプに変換します
String Day = "2014-6-5 10:30:30"; SimpleDateFormat D2 = new SimpledateFormat( "yyyy-mm-dd hh:mm:ss"); date date2 = d2.parse(day); out.println( "thu jun 05 10:30:30:30 ctst 2014");
カレンダークラスアプリケーション
java.util.calendarクラスは抽象クラスです。 getInstance()staticメソッドを呼び出すと、カレンダーオブジェクトを取得できます。このオブジェクトは、現在の日付と時刻によって初期化されています。つまり、デフォルトでは現在の時刻を表します。
カレンダーc = calendary.getInstance(); int year = c.get(calender.year); int month = c.get(calender.month)+1; //月を取得する、0は1月int day = c.get(calender.day_of_month); int hour = c.get(calender.hour_of_day); int minute = c.get(calender.minute); int second = c.get(calender.second);
2か月を異なる時間と比較してください
SimpleDateFormat format = new SimpleDateFormat( "yyyy-mm-dd hh:mm:mm:ss"); dateTime d1 = new DateTime(format.parse( "2016-10-31 00:00:00:00")); dateTime d2 = new DateTime(format.parse( "2015-1-31 00:00:00 ")); system.out.println(math.abs(months.monthsbetween(d1、d2).getmonths()));
パート2:日付処理ツールクラス
パッケージcom.analysys.website.control; java.text.parseexception; Import java.text.parseposition; Import java.text.simpledateformat; Import java.util.calendar; Import java.util.date; Import java.util.gregoriancalendar; org.apache.commons.lang.stringutils; Import org.apache.log4j.logger; /** *日付処理ツールクラス * @author dylan_xu * @date 2012年3月11日 * @Modified by * @modified date * @since jdk1.6 * @see com.util.dateutil */public class dateutil {// 〜tatic fields/initializers /// ========================================================================= ========================================================================= private static logger logger = logger.getLogger(dateutil.class); private static string defaultdatePattern = null; private static string timepattern = "hh:mm";プライベート静的カレンダーCALE = Calendar.GetInstance(); public static final string ts_format = dateutil.getDatePattern() + "HH:MM:SS.S"; / **日付形式yyyy-mm文字列定数*/ private static final string month_format = "yyyy-mm"; / **日付形式yyyy-mm-dd文字列定数*/ private static final string date_format = "yyyy-mm-dd"; / **日付形式HH:MM:SS文字列定数*/ private static final string houreformat = "hh:mm:ss"; / **日付形式yyyy-mm-dd hh:mm:ss string constant*/ private static final string datetime_format = "yyyy-mm-dd hh:mm:ss"; / ** 1日、分、2番目の文字列定数00:00:00の開始/ ** 1日、分、2番目の文字列定数23:59:59*/ public static final string day_end_string_hhmmss = "23:59:59"; private static simpledateformat sdf_date_format = new simpledateFormat(date_format); private static simpledateformat sdf_hour_format = new simpledateformat(hour_format); private static simpledateformat sdf_datetime_format = new simpledateformat(datetime_format); //〜方法// ========================================================================================= / ** *サーバーの現在の日付と時刻を取得し、フォーマットを使用して日付文字列の形式で戻ります:yyyy-mm-dd hh:mm:ss * @author dylan_xu * @date mar 11、2012 * @return * / public static string getDateTime(){try {return sdf_datimat.fformt.format.format.formt.formt.formt.fformat.formt.formt.formt.form } catch(Exception e){logger.debug( "dateutil.getDatetime():" + e.getmessage());戻る ""; }} / ** *サーバーの現在の日付を取得し、フォーマットを使用して日付文字列の形式で戻ります:yyyy-mm-dd * @author dylan_xu * @date Mar 11、2012 * @return * / public static string getdate(){try {return sdf_date_format.format(cale.gettime()); } catch(Exception e){logger.debug( "dateutil.getDate():" + e.getMessage());戻る ""; }} / ** *サーバーの現在の時刻を取得し、形式で日付文字列の形式で返します。hh:mm:ss * @author dylan_xu * @date Mar 11、2012 * @return * / public static string gettime(){string temp = ""; try {temp += sdf_hour_format.format(cale.gettime()); return temp; } catch(Exception e){logger.debug( "dateutil.getTime():" + e.getMessage());戻る ""; }} / ** *統計中の開始日のデフォルト値 * @author dylan_xu * @date Mar 11、2012 * @return * / public static string getStartDate(){try {return getYear() + "-01-01"; } catch(Exception e){logger.debug( "dateutil.getStartDate():" + e.getMessage());戻る ""; }} / ** *統計中の終了日のデフォルト値 * @author dylan_xu * @date Mar 11、2012 * @return * / public static string getEnddate(){try {return getDate(); } catch(Exception e){logger.debug( "dateutil.getEnddate():" + e.getmessage());戻る ""; }} / ** *サーバーの現在の日付の年を取得 * @author dylan_xu * @date Mar 11、2012 * @return * / public static string getyear(){try {return string.valueof(cale.year); } catch(Exception e){logger.debug( "dateutil.getyear():" + e.getmessage());戻る ""; }} / ** *サーバーの現在の日付の月を取得 * @author dylan_xu * @date Mar 11、2012 * @return * / public static string getMonth(){try {java.text.decimalformat df = new java.text.decimalformat(); df.ApplyPattern( "00; 00"); df.formatを返します((cale.get(calendar.month) + 1)); } catch(Exception e){logger.debug( "dateutil.getmonth():" + e.getmessage());戻る ""; }} / ** *サーバーの今月の日数を取得 * @author dylan_xu * @date Mar 11、2012 * @return * / public static string getday(){return string.valueof(callean.day_of_month)); } catch(Exception e){logger.debug( "dateutil.getDay():" + e.getMessage());戻る ""; }} / ** * 2つの日付間の日数の比較 * @author dylan_xu * @date Mar 11、2012 * @param date1 * @param date2 * @return * / public static int getmargin(string date1、string date2){int margin; try {parsoposition pos = new Parseposition(0);パーセポジションPOS1 =新しいパーセポジション(0);日付dt1 = sdf_date_format.parse(date1、pos);日付dt2 = sdf_date_format.parse(date2、pos1); long l = dt1.gettime() - dt2.gettime();マージン=(int)(l /(24 * 60 * 60 * 1000));リターンマージン。 } catch(Exception e){logger.debug( "dateutil.getmargin():" + e.toString()); 0を返します。 }} / ** * 2つの日付が異なる日数の比較 * @author dylan_xu * @date Mar 11、2012 * @param date1 * @param date2 * @return * / public static double getdoubmargin(string date1、string date2){double margin; try {parsoposition pos = new Parseposition(0);パーセポジションPOS1 =新しいパーセポジション(0);日付dt1 = sdf_datetime_format.parse(date1、pos);日付dt2 = sdf_datetime_format.parse(date2、pos1); long l = dt1.gettime() - dt2.gettime();マージン=(l /(24 * 60 * 60 * 1000.00));リターンマージン。 } catch(Exception e){logger.debug( "dateutil.getmargin():" + e.toString()); 0を返します。 }} / ** * 2つの日付間の月数の比較 * @author dylan_xu * @date Mar 11、2012 * @param date1 * @param date2 * @return * / public static int getmonthmargin(string date1、string date2){int margin; try {margin =(integer.parseint(date2.substring(0、4))-integer.parseint(date1.substring(0、4))) * 12;マージン +=(integer.parseint(date2.substring(4、7).replaceall( "-0"、 " - ")) - integer.parseint(date1.substring(4、7).replaceall( "-0"、 " - ")));リターンマージン。 } catch(Exception e){logger.debug( "dateutil.getmargin():" + e.toString()); 0を返します。 }} / ** *日付の日付の後の日付 * @author dylan_xu * @date Mar 11、2012 * @param date * @param i * @return * / public static string addday(string date、int i){try {gregoriancalendar gcal = new gregoriancalendar(new gregoriancalendar(integer.parseint(0、substring(new gregoriancalendar) integer.parseint(date.substring(5、7))-1、integer.parseint(date.substring(8、10))); gcal.add(gregoriancalendar.date、i); return sdf_date_format.format(gcal.gettime()); } catch(Exception e){logger.debug( "dateutil.addday():" + e.toString()); return getDate(); }} / ** *日付と日付とxヶ月後の日付を返します * @author dylan_xu * @date 3月11日 * @param date * @param i * @return * / public static string addmonth(string date、int i){try {gregoriancalendar gcal = new gregorianncalendar(integer.parseint(0、integer.parseint(4)、new gregoriancalentar integer.parseint(date.substring(5、7))-1、integer.parseint(date.substring(8、10))); gcal.add(gregoriancalendar.month、i); return sdf_date_format.format(gcal.gettime()); } catch(Exception e){logger.debug( "dateutil.addmonth():" + e.toString()); return getDate(); }} / ** *日付と日付とx yearsの後の日付を返します * @author dylan_xu * @date 3月11日 * @param date * @param i * @return * / public static string addyear(string date、int i){try {gregoriancalendar gcal = new gregoriancalentar(integer.parseint(0、integer.parseint(0、substring)、new gregoriancalendar integer.parseint(date.substring(5、7))-1、integer.parseint(date.substring(8、10))); gcal.add(gregoriancalendar.year、i); return sdf_date_format.format(gcal.gettime()); } catch(Exception e){logger.debug( "dateutil.addyear():" + e.toString());戻る ""; }} / ** *特定の年に特定の月の最大日を返します * @author dylan_xu * @date Mar 11、2012 * @param year * @return * / public static int getmaxday(int iyear、int image){int day = 0; try {if(imonth == 1 || image == 3 || image == 5 || image == 7 || image == 8 || image == 10 || image == 12){day = 31; } else if(imonth == 4 || image == 6 || image == 9 || image == 11){day = 30; } else if((0 ==(iyear%4))&&(0!=(iyear%100))||(0 ==(iyear%400))){day = 29; } else {day = 28; }戻る日; } catch(Exception e){logger.debug( "dateutil.getmonthday():" + e.toString());返品1; }} / ** *フォーマット日付 * @Author dylan_xu * @date 3月11日、2012年3月11日 * @param orgdate * @param type * @param span * @return * / @suppresswarnings( "static-access")public string rolldate(string orgdate、int span、int {try {string emp = "" " int iyear、イメージ、アイデー; int ipos = 0; char seperater = ' - '; if(orgdate == null || orgdate.length()<6){return ""; } ipos = orgdate.indexof(seperater); if(ipos> 0){iyear = integer.parseint(orgdate.substring(0、ipos)); temp = orgdate.substring(ipos + 1); } else {iyear = integer.parseint(orgdate.substring(0、4)); temp = orgdate.substring(4); } ipos = temp.indexof(seperater); if(ipos> 0){image = integer.parseint(temp.substring(0、ipos)); temp = temp.substring(ipos + 1); } else {ipos = temp.indexof(seperater); if(ipos> 0){image = integer.parseint(temp.substring(0、ipos)); temp = temp.substring(ipos + 1); } else {image = integer.parseint(temp.substring(0、2)); temp = temp.substring(2); } 画像 - ; if(imonth <0 || image> 11){image = 0; } iday = integer.parseint(temp); if(1日目<1 || iday> 31)iday = 1;カレンダーorgcale = calendar.getInstance(); orgcale.set(iyear、image、iday); temp = this.rolldate(orgcale、type、span); return temp; } catch(例外e){return ""; }} public static string rolldate(calendar cal、int type、int span){try {string temp = "";カレンダーロルスター; rolcale = cal; rolcale.add(タイプ、スパン); temp = sdf_date_format.format(rolcale.gettime()); return temp; } catch(例外e){return ""; }} / ** *デフォルトの日付フォーマットを返します * @author dylan_xu * @date 2012年3月11日 * @return * / public static同期文字列getDatePattern(){defaultDatePattern = "yyyy-mm-dd"; DefaultDatePatternを返します。 } / ** *指定された日付を、次のようなデフォルト形式と出力の文字列に置き換えます:yyyy-mm-dd * @author dylan_xu * @date 2012年3月11日 * @param adate * @return * / public static final string getdate(date adate){simpledateformat df = null; string returnValue = ""; if(adate!= null){df = new SimpledateFormat(getDatePattern()); returnValue = df.format(adate); } return(returnValue); } / ** *指定された日付の時間文字列を取得します。フォーマットは現在のデフォルト時間形式です * @author dylan_xu * @date 3月11日 * @param thetime * @return * / public static string gettimenow(date thetime){return getDateTime(timepattern、thetime); } / ** *現在の時刻のカレンダーカレンダーオブジェクトを取得 * @author dylan_xu * @date 3月11日 * @return * @throws parseexception * / publicカレンダーgettoday()throws parseexception {today = new date(); SimpleDateFormat df = new SimpledateFormat(getDatePattern()); String TodaceAsstring = df.Format(Today);カレンダーCal = new GregorianCalendar(); cal.settime(convertStringtodate(TodayString)); calを返します。 } / ** *指定された形式で日付クラスを文字列フォームに変換 * @Author dylan_xu * @date 3月11日 * @param amask * @param adate * @return * / public static final string getDatetime(String Amask、Date Adate){SimpledateFormat df = null; string returnValue = ""; if(adate == null){logger.error( "adate is null!"); } else {df = new SimpledateFormat(Amask); returnValue = df.format(adate); } return(returnValue); } / ** *指定された日付をデフォルト形式の文字列形式に変換 * @Author dylan_xu * @date 3月11日 * @param adate * @return * / public static final string convertdateTostring(date adate){return getDateTime(getDatePattern()、adate); } / ** *指定された形式の日付文字列を日付タイプに変換 * @Author dylan_xu * @date 3月11日 * @param amask指定された日付形式(yyyy-mm-dd * @paramストライト) parseexception {simpledateformat df = null;日付date = null; df = new simpledateFormat(amask); if(logger.isdebugenabled()){logger.debug( "converting '" + strdate + "' to dute with mask '" + amask + "'"); } try {date = df.parse(strdate); } catch(parseexception pe){logger.error( "parseexception:" + pe); PEを投げる; } return(date); } / ** *日付文字列をデフォルト形式の日付タイプに変換 * @author dylan_xu * @date Mar 11、2012 * @param strdate * @return * @throws parseexception * / public static date convertStringtodate(string strdate)throws parseexception {date adate = null; try {if(logger.isdebugenabled()){logger.debug( "パターンによる変換日:" + getDatePattern()); } adate = convertStringTodate(getDatePattern()、strdate); } catch(parseexception pe){logger.error( "'" + strdate + "'が日付に変換できなかった、例外をスローする");新しいparseexception(pe.getmessage()、pe.geterroroffset())を投げる; } adateを返します。 } / ** * javaシンプルタイプの日付文字列 * @author dylan_xu * @date 3月11日 * @return * / public static string getsimpledateformat(){simpledateformat formatter = new simpledateformat();文字列ndateTime = formatter.format(new date()); ndateTimeを返します。 }/** *指定された文字列形式の日付と現在の時刻 * @author dylan * @date 2月17日 * @param strdate * @return * int code * <ul> * <li> -1現在の時刻<時間の比較</li> * <li> 0 < </ p> */ public static int comparetocurtime(string strdate){if(stringutils.isblank(strdate)){return -1; } date curtime = cale.getTime(); string strcurtime = null; try {strcurtime = sdf_datetime_format.format(curtime); } catch(Exception e){if(logger.isdebugenabled()){logger.debug( "[format '" + strdate + "'が日付に、例外をスロー:" + e.getLocalizedMessage() + "]"); }} if(stringutils.isnotblank(strcurtime)){return strcurtime.compareto(strdate); } return -1; } / ** *クエリ日付に最小時間を追加 * * @paramターゲットタイプ日付 * @param変換パラメーター日付 * @return * / @suppresswarnings( "deprecation")public static date addstarttime(date param){date date = param; try {date.sethours(0); date.setminutes(0); date.setseconds(0);返品日; } catch(Exception ex){return date; }} / ** *クエリに最大時間を追加しますtry {date.sethours(23); date.setminutes(59); date.setseconds(0);返品日; } catch(Exception ex){return date; }} / ***システムの今年の日数を返します** @param month* @return指定された月の合計日* / @suppresswarnings( "Deprecation")public Static String getMonthLast(int month){date date = new date(); int [] [] day = {{0、30、28、31、30、31、30、31、31、30、31、30、31}、{0、31、29、31、30、30、30、31、30、31、30、31}}; int year = date.getyear() + 1900; if(year%4 == 0 && year%100!= 0 || year%400 == 0){return day [1] [month] + ""; } else {return day [0] [month] + ""; } } /** * Return the number of days in the specified month in the specified year* * @param Year year * @param Month month * @return Total days in the specified month*/ public static String getMonthLastDay(int year, int month) { int[][] day = { { 0, 30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30、31、30、31、30、31、30、31、30、31、30、31、30、31、30、31、30、30、31、30、31、30、31、30、30、31}}; if(year%4 == 0 && year%100!= 0 || year%400 == 0){return day [1] [month] + ""; } else {return day [0] [month] + ""; }} / ** *通常の年か命を奪われるかどうかを判断 * @author dylan_xu * @date Mar 11、2012 * @param year * @return * / public static boolean isleapyear(int year){if((year%4 == 0 && year%100!= 0)||(year%400)= 0){return; } else {return false; }} / ** *現在の時間の日 * @author dylan_xu * @date 2012年3月11日 * @return * / @suppresswarnings( "deprecation")public static string gettimestamp(){date date = cale.gettime(); string timestamp = "" +(date.getyear() + 1900) + date.getMonth() + date.getDate() + date.getMinutes() + date.getSeconds() + date.getTime();リターンタイムスタンプ。 } / ** *指定された時間の日のスタンプを取得 * * @return * / @suppresswarnings( "deprecation")public static string getTimestamp(date date){string timestamp = "" +(date.getyear() + 1900) + date.getmonth() + date.getdate() + date.getminute() + dateminute() + date() + date()リターンタイムスタンプ。 } public static void main(string [] args){system.out.println(getYear() + "|" + getMonth() + "|" + getDate()); }}上記はこの記事に関するものです。すべての人の学習に役立つことを願っています。