Java工具類DateUtils實(shí)例詳解
更新時(shí)間:2017年12月08日 11:18:51 作者:Godliness丶
這篇文章主要為大家詳細(xì)介紹了Java工具類DateUtils實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了Java工具類DateUtils的具體代碼,供大家參考,具體內(nèi)容如下
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 描述:公共日期工具類 */ public class DateUtils { public static String DATE_FORMAT = "yyyy-MM-dd"; public static String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static String DATE_FORMAT_CHINESE = "yyyy年M月d日"; /** * 獲取當(dāng)前日期 * * * @return * */ public static String getCurrentDate() { String datestr = null; SimpleDateFormat df = new SimpleDateFormat(DateUtils.DATE_FORMAT); datestr = df.format(new Date()); return datestr; } /** * 獲取當(dāng)前日期時(shí)間 * * * @return * */ public static String getCurrentDateTime() { String datestr = null; SimpleDateFormat df = new SimpleDateFormat(DateUtils.DATE_TIME_FORMAT); datestr = df.format(new Date()); return datestr; } /** * 獲取當(dāng)前日期時(shí)間 * * * @return * */ public static String getCurrentDateTime(String Dateformat) { String datestr = null; SimpleDateFormat df = new SimpleDateFormat(Dateformat); datestr = df.format(new Date()); return datestr; } public static String dateToDateTime(Date date) { String datestr = null; SimpleDateFormat df = new SimpleDateFormat(DateUtils.DATE_TIME_FORMAT); datestr = df.format(date); return datestr; } /** * 將字符串日期轉(zhuǎn)換為日期格式 * * * @param datestr * @return * */ public static Date stringToDate(String datestr) { if(datestr ==null ||datestr.equals("")){ return null; } Date date = new Date(); SimpleDateFormat df = new SimpleDateFormat(DateUtils.DATE_FORMAT); try { date = df.parse(datestr); } catch (ParseException e) { date=DateUtils.stringToDate(datestr,"yyyyMMdd"); } return date; } /** * 將字符串日期轉(zhuǎn)換為日期格式 * 自定義格式 * * @param datestr * @return * */ public static Date stringToDate(String datestr, String dateformat) { Date date = new Date(); SimpleDateFormat df = new SimpleDateFormat(dateformat); try { date = df.parse(datestr); } catch (ParseException e) { e.printStackTrace(); } return date; } /** * 將日期格式日期轉(zhuǎn)換為字符串格式 * * * @param date * @return * */ public static String dateToString(Date date) { String datestr = null; SimpleDateFormat df = new SimpleDateFormat(DateUtils.DATE_FORMAT); datestr = df.format(date); return datestr; } /** * 將日期格式日期轉(zhuǎn)換為字符串格式 自定義格式 * * @param date * @param dateformat * @return */ public static String dateToString(Date date, String dateformat) { String datestr = null; SimpleDateFormat df = new SimpleDateFormat(dateformat); datestr = df.format(date); return datestr; } /** * 獲取日期的DAY值 * * * @param date * 輸入日期 * @return * */ public static int getDayOfDate(Date date) { int d = 0; Calendar cd = Calendar.getInstance(); cd.setTime(date); d = cd.get(Calendar.DAY_OF_MONTH); return d; } /** * 獲取日期的MONTH值 * * * @param date * 輸入日期 * @return * */ public static int getMonthOfDate(Date date) { int m = 0; Calendar cd = Calendar.getInstance(); cd.setTime(date); m = cd.get(Calendar.MONTH) + 1; return m; } /** * 獲取日期的YEAR值 * * * @param date * 輸入日期 * @return * */ public static int getYearOfDate(Date date) { int y = 0; Calendar cd = Calendar.getInstance(); cd.setTime(date); y = cd.get(Calendar.YEAR); return y; } /** * 獲取星期幾 * * * @param date * 輸入日期 * @return * */ public static int getWeekOfDate(Date date) { int wd = 0; Calendar cd = Calendar.getInstance(); cd.setTime(date); wd = cd.get(Calendar.DAY_OF_WEEK) - 1; return wd; } /** * 獲取輸入日期的當(dāng)月第一天 * * * @param date * 輸入日期 * @return * */ public static Date getFirstDayOfMonth(Date date) { Calendar cd = Calendar.getInstance(); cd.setTime(date); cd.set(Calendar.DAY_OF_MONTH, 1); return cd.getTime(); } /** * 獲得輸入日期的當(dāng)月最后一天 * * @param date */ public static Date getLastDayOfMonth(Date date) { return DateUtils.addDay(DateUtils.getFirstDayOfMonth(DateUtils.addMonth(date, 1)), -1); } /** * 判斷是否是閏年 * * * @param date * 輸入日期 * @return 是true 否false * */ public static boolean isLeapYEAR(Date date) { Calendar cd = Calendar.getInstance(); cd.setTime(date); int year = cd.get(Calendar.YEAR); if (year % 4 == 0 && year % 100 != 0 | year % 400 == 0) { return true; } else { return false; } } /** * 根據(jù)整型數(shù)表示的年月日,生成日期類型格式 * * @param year * 年 * @param month * 月 * @param day * 日 * @return * */ public static Date getDateByYMD(int year, int month, int day) { Calendar cd = Calendar.getInstance(); cd.set(year, month-1, day); return cd.getTime(); } /** * 獲取年周期對(duì)應(yīng)日 * * @param date * 輸入日期 * @param iyear * 年數(shù) 負(fù)數(shù)表示之前 * @return * */ public static Date getYearCycleOfDate(Date date, int iyear) { Calendar cd = Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.YEAR, iyear); return cd.getTime(); } /** * 獲取月周期對(duì)應(yīng)日 * * @param date * 輸入日期 * @param i * @return * */ public static Date getMonthCycleOfDate(Date date, int i) { Calendar cd = Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.MONTH, i); return cd.getTime(); } /** * 計(jì)算 fromDate 到 toDate 相差多少年 * * @param fromDate * @param toDate * @return 年數(shù) * */ public static int getYearByMinusDate(Date fromDate, Date toDate) { Calendar df=Calendar.getInstance(); df.setTime(fromDate); Calendar dt=Calendar.getInstance(); dt.setTime(toDate); return dt.get(Calendar.YEAR)-df.get(Calendar.YEAR); } /** * 計(jì)算 fromDate 到 toDate 相差多少個(gè)月 * * @param fromDate * @param toDate * @return 月數(shù) * */ public static int getMonthByMinusDate(Date fromDate, Date toDate) { Calendar df=Calendar.getInstance(); df.setTime(fromDate); Calendar dt=Calendar.getInstance(); dt.setTime(toDate); return dt.get(Calendar.YEAR)*12+dt.get(Calendar.MONTH)- (df.get(Calendar.YEAR)*12+df.get(Calendar.MONTH)); } /** * 計(jì)算 fromDate 到 toDate 相差多少天 * * @param fromDate * @param toDate * @return 天數(shù) * */ public static long getDayByMinusDate(Object fromDate, Object toDate) { Date f=DateUtils.chgObject(fromDate); Date t=DateUtils.chgObject(toDate); long fd=f.getTime(); long td=t.getTime(); return (td-fd)/(24L * 60L * 60L * 1000L); } /** * 計(jì)算年齡 * * @param birthday * 生日日期 * @param calcDate * 要計(jì)算的日期點(diǎn) * @return * */ public static int calcAge(Date birthday, Date calcDate) { int cYear=DateUtils.getYearOfDate(calcDate); int cMonth=DateUtils.getMonthOfDate(calcDate); int cDay=DateUtils.getDayOfDate(calcDate); int bYear=DateUtils.getYearOfDate(birthday); int bMonth=DateUtils.getMonthOfDate(birthday); int bDay=DateUtils.getDayOfDate(birthday); if(cMonth>bMonth||(cMonth==bMonth&&cDay>bDay)){ return cYear-bYear; }else{ return cYear-1-bYear; } } /** * 從身份證中獲取出生日期 * * @param idno * 身份證號(hào)碼 * @return * */ public static String getBirthDayFromIDCard(String idno) { Calendar cd = Calendar.getInstance(); if (idno.length() == 15) { cd.set(Calendar.YEAR, Integer.valueOf("19" + idno.substring(6, 8)) .intValue()); cd.set(Calendar.MONTH, Integer.valueOf(idno.substring(8, 10)) .intValue() - 1); cd.set(Calendar.DAY_OF_MONTH, Integer.valueOf(idno.substring(10, 12)).intValue()); } else if (idno.length() == 18) { cd.set(Calendar.YEAR, Integer.valueOf(idno.substring(6, 10)) .intValue()); cd.set(Calendar.MONTH, Integer.valueOf(idno.substring(10, 12)) .intValue() - 1); cd.set(Calendar.DAY_OF_MONTH, Integer.valueOf(idno.substring(12, 14)).intValue()); } return DateUtils.dateToString(cd.getTime()); } /** * 在輸入日期上增加(+)或減去(-)天數(shù) * * @param date * 輸入日期 * @param imonth * 要增加或減少的天數(shù) */ public static Date addDay(Date date, int iday) { Calendar cd = Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.DAY_OF_MONTH, iday); return cd.getTime(); } /** * 在輸入日期上增加(+)或減去(-)月份 * * @param date * 輸入日期 * @param imonth * 要增加或減少的月分?jǐn)?shù) */ public static Date addMonth(Date date, int imonth) { Calendar cd = Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.MONTH, imonth); return cd.getTime(); } /** * 在輸入日期上增加(+)或減去(-)年份 * * @param date * 輸入日期 * @param imonth * 要增加或減少的年數(shù) */ public static Date addYear(Date date, int iyear) { Calendar cd = Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.YEAR, iyear); return cd.getTime(); } /** * 將OBJECT類型轉(zhuǎn)換為Date * @param date * @return */ public static Date chgObject(Object date){ if(date!=null&&date instanceof Date){ return (Date)date; } if(date!=null&&date instanceof String){ return DateUtils.stringToDate((String)date); } return null; } public static long getAgeByBirthday(String date){ Date birthday = stringToDate(date, "yyyy-MM-dd"); long sec = new Date().getTime() - birthday.getTime(); long age = sec/(1000*60*60*24)/365; return age; } /** * @param args */ public static void main(String[] args) { //String temp = DateUtil.dateToString(getLastDayOfMonth(new Date()), /// DateUtil.DATE_FORMAT_CHINESE); //String s=DateUtil.dateToString(DateUtil.addDay(DateUtil.addYear(new Date(),1),-1)); long s=DateUtils.getDayByMinusDate("2012-01-01", "2012-12-31"); System.err.println(s); } }
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
一文帶你認(rèn)識(shí)Java中的Object類和深淺拷貝
任何變成語言中,其實(shí)都有淺拷貝和深拷貝的概念,Java 中也不例外,下面這篇文章主要給大家介紹了關(guān)于Java中Object類和深淺拷貝的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04Java實(shí)現(xiàn)文件壓縮與解壓的示例[zip格式,gzip格式]
本篇文章主要介紹了Java實(shí)現(xiàn)文件壓縮與解壓的示例[zip格式,gzip格式],具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01Mac下安裝配置Maven并在IDEA中配置的詳細(xì)教程
這篇文章主要介紹了Mac下安裝配置Maven并在IDEA中配置,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07基于Log4j2阻塞業(yè)務(wù)線程引發(fā)的思考
這篇文章主要介紹了基于Log4j2阻塞業(yè)務(wù)線程引發(fā)的思考,基于很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12springboot開啟Bean數(shù)據(jù)校驗(yàn)功能
這篇文章主要介紹了springboot開啟Bean數(shù)據(jù)校驗(yàn)功能,通過啟用Bean屬性校驗(yàn)導(dǎo)入JSR303與Hibernate校驗(yàn)框架坐標(biāo),使用@Validated注解啟用校驗(yàn)功能,需要的朋友可以參考下2023-10-10javaWEB中前后臺(tái)亂碼問題的解決方法總結(jié)
下面小編就為大家?guī)硪黄猨avaWEB中前后臺(tái)亂碼問題的解決方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08