jar包 appache下的 common-lang3
一、 對指定的日期新增年、月、周、日、小時、分鍾、秒、毫秒
public static Date addDays(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
date = DateUtils.addDays(date, 1);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
結果是:
2018-01-23 11:53:49
2018-01-24 11:53:49這里寫代碼片
說明:向返回新對象日期添加若干天,原始日期不變;
參數:date-日期,可能為空;amount-添加的量可能為復值;
返回值:返回一個新日期,原始日期不變;
拋出異常:IllegalArgumentException,如果日期為null;
public static Date addHours(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
date = DateUtils.addHours(date, 1);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
結果:
2018-01-23 11:58:26
2018-01-23 12:58:26
說明:向新返回日期對象添加若干小時,原始日期不變;
參數:date-日期,可能為空;amount-添加的量可能為復值;
返回值:返回一個新日期,原始日期不變;
拋出異常:IllegalArgumentException,如果日期為null;
public static Date addMinutes(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
date = DateUtils.addMinutes(date, 1);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
結果:
2018-01-23 13:04:05
2018-01-23 13:05:05
說明:向新返回日期對象添加若干分鍾,原始日期不變;
參數:date-日期,可能為空;amount-添加的量可能為復值;
返回值:返回一個新日期,原始日期不變;
拋出異常:IllegalArgumentException,如果日期為null;
public static Date addSeconds(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
date = DateUtils.addSeconds(date, 1);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
結果:
2018-01-23 13:06:42
2018-01-23 13:06:43
說明:向新返回日期對象添加若干秒,原始日期不變;
參數:date-日期,可能為空;amount-添加的量可能為復值;
返回值:返回一個新日期,原始日期不變;
拋出異常:IllegalArgumentException,如果日期為null;
public static Date addMilliseconds(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.addMilliseconds(date, 1);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:10:26:579
2018-01-23 13:10:26:580
說明:向新返回日期對象添加若干毫秒,原始日期不變;
參數:date-日期,可能為空;amount-添加的量可能為復值;
返回值:返回一個新日期,原始日期不變;
拋出異常:IllegalArgumentException,如果日期為null;
public static Date addYears(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.addYears(date, 1);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:12:44:742
2019-01-23 13:12:44:742
說明:向新返回日期對象添加若干年,原始日期不變;
參數:date-日期,可能為空;amount-添加的量可能為復值;
返回值:返回一個新日期,原始日期不變;
拋出異常:IllegalArgumentException,如果日期為null;
public static Date addMonths(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.addMonths(date, 1);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:14:13:354
2018-02-23 13:14:13:354
說明:向新返回日期對象添加若干年,原始日期不變;
參數:date-日期,可能為空;amount-添加的量可能為復值;
返回值:返回一個新日期,原始日期不變;
拋出異常:IllegalArgumentException,如果日期為null;
public static Date addWeeks(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.addWeeks(date, 1);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:15:21:608
2018-01-30 13:15:21:608
說明:向新返回日期對象添加若干周,原始日期不變;
參數:date-日期,可能為空;amount-添加的量可能為復值;
返回值:返回一個新日期,原始日期不變;
拋出異常:IllegalArgumentException,如果日期為null;
二、設置日期中年、月、日、時、分、秒、毫秒值為指定的數字值
public static Date setYears(Date date,int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.setYears(date, 2015);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:24:13:838
2015-01-23 13:24:13:838
說明:設置日期中年字段並返回一個新的日期對象,原始日期值不變;
參數:date-日期,不能為null;amount-設置的值,非負值;
返回:一個新的日期對象;
拋出異常:IllegalArgumentException,如果日期為null或者負值;
public static Date setMonths(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.setMonths(date, 11);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:30:28:161
2018-12-23 13:30:28:161
說明:設置日期中月字段並返回一個新的日期對象,原始日期值不變;
參數:date-日期,不能為null;amount-設置的值,非負值,且值為0—11;
返回:一個新的日期對象;
拋出異常:IllegalArgumentException,如果日期為null或者負值;
public static Date setDays(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.setDays(date, 11);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:33:41:587
2018-01-11 13:33:41:587
說明:設置日期中日字段並返回一個新的日期對象,原始日期值不變;
參數:date-日期,不能為null;amount-設置的值,非負值,且值為0到當月最大天數;
返回:一個新的日期對象;
拋出異常:IllegalArgumentException,如果日期為null或者負值;
public static Date setHours(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.setHours(date, 16);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:36:01:860
2018-01-23 16:36:01:860
說明:設置日期中小時字段並返回一個新的日期對象,原始日期值不變;
參數:date-日期,不能為null;amount-設置的值,非負值,且值為0到23;
返回:一個新的日期對象;
拋出異常:IllegalArgumentException,如果日期為null或者負值;
public static Date setMinutes(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.setMinutes(date, 16);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:37:28:681
2018-01-23 13:16:28:681
說明:設置日期中分鍾字段並返回一個新的日期對象,原始日期值不變;
參數:date-日期,不能為null;amount-設置的值,非負值,且值為0到59;
返回:一個新的日期對象;
拋出異常:IllegalArgumentException,如果日期為null或者負值;
public static Date setSeconds(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.setSeconds(date, 10);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:39:19:946
2018-01-23 13:39:10:946
說明:設置日期中秒字段並返回一個新的日期對象,原始日期值不變;
參數:date-日期,不能為null;amount-設置的值,非負值,且值為0到59;
返回:一個新的日期對象;
拋出異常:IllegalArgumentException,如果日期為null或者負值;
public static Date setMilliseconds(Date date, int amount)
Date date = new Date();
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
date = DateUtils.setMilliseconds(date, 10);
System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
結果:
2018-01-23 13:40:38:666
2018-01-23 13:40:38:010
說明:設置日期中毫秒字段並返回一個新的日期對象,原始日期值不變;
參數:date-日期,不能為null;amount-設置的值,非負值,且值為0到999;
返回:一個新的日期對象;
拋出異常:IllegalArgumentException,如果日期為null或者負值;
三、檢查日期是否相同
public static boolean isSameDay(Date date1, Date date2)
Date date1 = new Date();
Date date2 = new Date();
System.out.println(DateUtils.isSameDay(date1, date2));
結果:
true
說明:檢查兩個日期對象是否同一天忽略時間(28 Mar 2002 13:45 and 28 Mar 2002 06:01 would return true. 28 Mar 2002 13:45 and 12 Mar 2002 13:45 would return false.);
參數:date1-第一個參數,不能改變,非空;date2-第二個參數,不能改變,非空;
返回值:true,如果兩個日期在同一天;
拋出異常:IllegalArgumentException如果有一個日期為null;
public static boolean isSameDay(Calendar cal1, Calendar cal2)
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
System.out.println(DateUtils.isSameDay(cal1, cal2));
結果:
true
說明:檢查兩個日期對象是否同一天忽略時間(28 Mar 2002 13:45 and 28 Mar 2002 06:01 would return true. 28 Mar 2002 13:45 and 12 Mar 2002 13:45 would return false);
參數:date1-第一個參數,不能改變,非空;date2-第二個參數,不能改變,非空;
返回值:true,如果兩個日期在同一天;
拋出異常:IllegalArgumentException如果有一個日期為null;
public static boolean isSameInstant(Date date1, Date date2)
Date date1 = new Date();
date1 = DateUtils.addMinutes(date1, 23);
Date date2 = new Date();
System.out.println(DateUtils.isSameInstant(date1, date2));
結果:
false
說明:檢查兩個日期對象是否代表同一時刻,此方法比較兩個日期精確到毫秒數;
參數:date1-第一個參數,不能改變,非空;date2-第二個參數,不能改變,非空;
返回值:true,如果兩個日期代表相同的毫秒時刻;
拋出異常:IllegalArgumentException如果有一個日期為null;
public static boolean isSameInstant(Calendar cal1, Calendar cal2)
Calendar cal1 = Calendar.getInstance();
Date date3 = DateUtils.addHours(cal1.getTime(), 12);
cal1.setTime(date3);
Calendar cal2 = Calendar.getInstance();
System.out.println(DateUtils.isSameInstant(cal1, cal2));
結果:
false
說明:檢查兩個日期對象是否代表同一時刻,此方法比較兩個日期精確到毫秒數;
參數:date1-第一個參數,不能改變,非空;date2-第二個參數,不能改變,非空;
返回值:true,如果兩個日期代表相同的毫秒時刻;
拋出異常:IllegalArgumentException如果有一個日期為null;
public static boolean isSameLocalTime(Calendar cal1,Calendar cal2)
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
System.out.println(DateUtils.isSameLocalTime(cal1, cal2));
結果:
true
說明:檢查兩個日歷對象是否表示相同的本地時間,此方法比較兩個對象的字段值,另外兩個日歷必須為同一類型的日歷;
參數:cal1-第一個參數,不能改變,非空;cal2-第二個參數,不能改變,非空;
返回值:true,如果兩個日期代表相同的毫秒時刻;
拋出異常:IllegalArgumentException如果有一個日期為null;
一、日期格式化
public static Date parseDate(String str, Locale locale,String… parsePatterns)
說明:使用給定區域設置的默認日期格式符號,通過嘗試各種不同的解析器解析一個表示日期的字符串,解析將依次嘗試每個解析模式。解析只有在解析整個輸入字符串時才被認為是成功的。如果沒有解析模式匹配,拋出ParseException拋出,解析器將對已解析的日期冗余;
參數:str-轉換的日期,非null;parsePatterns-要使用的日期格式模式,查看SimpleDateFormat,非null;local-應該使用日期格式符號的區域設置。如果為空,系統現場應用(每parsedate(String,String…))。
返回數據:轉換后的日期對象;
拋出異常:IllegalArgumentException-如果data字符串或者parsePatterns模式為null;ParseException-如果沒有日期格式符合data字符串;
DateUtils.parseDate("2017-12-16 15:26:56",Locale.CHINA, "yyyy-MM-dd HH:mm:ss")
Sat Dec 16 15:26:56 CST 2017
public static Date parseDate(String str, String… parsePatterns)
說明:通過嘗試各種不同的解析器解析一個表示日期的字符串,解析將依次嘗試每個解析模式。解析只有在解析整個輸入字符串時才被認為是成功的。如果沒有解析模式匹配,拋出ParseException拋出。
參數:str-轉換的日期,非null;parsePatterns-要使用的日期格式模式,查看SimpleDateFormat,非null;
返回數據:轉換后的日期對象;
拋出異常:IllegalArgumentException-如果data字符串或者parsePatterns模式為null;ParseException-如果沒有日期格式符合data字符串;
DateUtils.parseDate("2017-12-16 15:26:56", "yyyy-MM-dd HH:mm:ss")
Sat Dec 16 15:26:56 CST 2017
public static Date parseDateStrictly(String str, String… parsePatterns)
說明:通過嘗試各種不同的解析器解析一個表示日期的字符串,解析將依次嘗試每個解析模式,解析只有在解析完整個輸入字符串的時候才會被認為成功,如果沒有解析模式匹配,將會拋出異常;解析器嚴格解析,它不允許諸如"February 942, 1996";
參數:str-輸入的日期字符串,非null;parsePatterns-日期轉換的格式,非null;
返回值:轉換后的日期對象;
拋出異常:IllegalArgumentException-如果data字符串或者parsePatterns模式為null;ParseException-如果沒有日期格式符合data字符串;
二、日期舍入
public static Date round(Date date, int field)
說明:舍入日期,保留大於等於指定字段的日期;例如如果你有日期28 Mar 2002 13:45:01.231,如果傳入HOUR,那結果會是28 Mar 2002 14:00:00.000;如果傳入的是MONTH,將會返回1 April 2002 0:00:00.000;
參數:date-轉換日期;field-舍入字段,如:Calendar.DATE、Calendar.MINUTE;
返回值:不同的舍入日期,非null;
————————————————
版權聲明:本文為CSDN博主「隨風yy」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yaomingyang/article/details/79138466