Java日期時(shí)間格式化操作DateUtils 的整理
Java日期時(shí)間格式化操作DateUtils 的整理
直接上代碼,總結(jié)了開(kāi)發(fā)過(guò)程中經(jīng)常用到的日期時(shí)間格式化操作!
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.concurrent.TimeUnit; /** * ClassName: DateUtils <br/> * Description:時(shí)間操作工具類(lèi) */ public class DateUtils { private static final String[] UNIT_DESC = new String[]{"天", "小時(shí)", "分鐘", "秒"}; /** * 獲得當(dāng)前系統(tǒng)時(shí)間,格式為yyyyMMdd * * @return 格式化后的時(shí)間 */ public static String currentYYYYMMDD() { return getStrByDate(new Date(), "yyyyMMdd"); } /** * 獲得當(dāng)前系統(tǒng)時(shí)間,格式為HHmmss * * @return 格式化后的時(shí)間 */ public static String currentHHMMSS() { return getStrByDate(new Date(), "HHmmss"); } /** * 獲得當(dāng)前系統(tǒng)時(shí)間,格式為yyyyMMddHHmmss * * @return 格式化后的時(shí)間 */ public static String currentYYYYMMDDHHmmss() { return getStrByDate(new Date(), "yyyyMMddHHmmss"); } /** * 根據(jù)給定的字符串如:yyyy-MM-dd HH:mm:ss,(必須是這種格式) 返回一個(gè)日期日期形式 * * @param strDate 要拋析的字符串,且字符串的形式必須:2007-09-10 07:00:00 * @return 將字符串拋析成日期的格式返回 * @throws ParseException 解析 format 字段失敗 */ public static java.util.Date getDateByStr(String strDate, String format) throws ParseException { assert strDate != null && format != null; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); return simpleDateFormat.parse(strDate); } /** * 根據(jù)給定的日期,返回給定的字符串, 返回 字符串的形式是:yyyy-MM-dd HH:mm:ss * * @param date 要格式化的日期 * @return 將日期格式化后返回的字符串,以這中格式返回:yyyy-MM-dd HH:mm:ss */ public static String getStrByDate(Date date, String format) { assert date != null && format != null; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); return simpleDateFormat.format(date); } /** * 得到當(dāng)前時(shí)間 * * @return 當(dāng)前時(shí)間 */ public static Date getDayOfMonth() { Calendar now = Calendar.getInstance(); return now.getTime(); } /** * 得到每月第一天 * * @param date 日期 * @return 日期月份的第一天 */ public static Date getFirstDayOfMonth(Date date) { Calendar nowday = Calendar.getInstance(); nowday.setTime(date); nowday.set(Calendar.DATE, 1);// 把日期設(shè)置為當(dāng)月第一天 return nowday.getTime(); } /** * 得到每月最后一天 * * @param date 日期 * @return 日期月份最后一天 */ public static Date getLastDayOfMonth(Date date) { Calendar nowday = Calendar.getInstance(); nowday.setTime(date); nowday.set(Calendar.DATE, 1);// 把日期設(shè)置為當(dāng)月第一天 nowday.roll(Calendar.DATE, -1);// 日期回滾一天,也就是最后一天 return nowday.getTime(); } /** * 獲取當(dāng)前年份 格式:yyyy * * @param date 當(dāng)前時(shí)間 * @return year */ public static String getCurrYear(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy"); Date currYear = calendar.getTime(); return String.valueOf(dateFormat.format(currYear)); } /** * 獲取當(dāng)前月份 格式:MM * * @param date 當(dāng)前時(shí)間 * @return Date */ public static String getCurrMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); SimpleDateFormat dateFormat = new SimpleDateFormat("MM"); Date currMonth = calendar.getTime(); return String.valueOf(dateFormat.format(currMonth)); } /** * 得到此日期的最后一天 * * @param d 日期 * @return 最后一天 */ public static Date getLastDayByDate(Date d) { Calendar newday = Calendar.getInstance(); newday.setTime(d); int lastday; int month = newday.get(Calendar.MONTH); do { lastday = newday.get(Calendar.DAY_OF_MONTH); newday.add(Calendar.DAY_OF_MONTH, 1); } while (newday.get(Calendar.MONTH) == month); newday.set(Calendar.MONTH, month); newday.set(Calendar.DAY_OF_MONTH, lastday); return newday.getTime(); } /** * 將 yyyyMMdd 的字符竄 轉(zhuǎn)化成 yyyy-MM-dd * * @param dateString yyyyMMdd格式的日期 * @return yyyy-MM-dd格式的日期 * @throws ParseException */ public static String formatyyyyMMdd(String dateString) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); Date date = simpleDateFormat.parse(dateString); SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd"); return formatStr.format(date); } /** * 將 yyyyMMdd 的字符竄 轉(zhuǎn)化成 yyyy-MM-dd HH:mm:ss * * @param dateString * @return * @throws ParseException */ public static String formatyyyyMMddHHmmss(String dateString) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = simpleDateFormat.parse(dateString); SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return formatStr.format(date); } /** * 獲取當(dāng)前年份 格式:yyyy * * @return Date */ public static int getCurrYear() { Calendar calendar = Calendar.getInstance(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy"); Date currYearFirst = calendar.getTime(); return Integer.valueOf(dateFormat.format(currYearFirst)); } /** * 獲取當(dāng)前時(shí)間前三月 * * @return Date */ public static Date getLastThreeMonths() { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, -3); calendar.add(Calendar.DAY_OF_MONTH, 1); return calendar.getTime(); } /** * 獲取當(dāng)前時(shí)間前一個(gè)月 * * @return Date */ public static Date getLastOneMonths() { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, -1); calendar.add(Calendar.DAY_OF_MONTH, 1); return calendar.getTime(); } /** * 獲取當(dāng)前時(shí)間前六個(gè)月 * * @return Date */ public static Date getLastSixMonths() { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, -6); calendar.add(Calendar.DAY_OF_MONTH, 1); return calendar.getTime(); } /** * 獲取某年第一天日期 * * @param year 年份 * @return Date */ public static Date getCurrYearFirst(int year) { Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); return calendar.getTime(); } /** * 獲取某年最后一天日期 * * @param year 年份 * @return Date */ public static Date getCurrYearLast(int year) { Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); calendar.roll(Calendar.DAY_OF_YEAR, -1); return calendar.getTime(); } /** * 格式化時(shí)間 * * @param date 時(shí)間 * @param format 格式化模板 * @return 格式化后的時(shí)間 */ public static String date2Str(Date date, String format) { return getStrByDate(date, format); } /** * 獲得指定日期的前一天 yyyy-MM-dd * @param date * @return */ public static String getSpecifiedDayBefore(Date date, String dateFormat){ if (date == null) return null; Calendar c = Calendar.getInstance(); c.setTime(date); int day=c.get(Calendar.DATE); c.set(Calendar.DATE,day-1); String dayBefore=new SimpleDateFormat(dateFormat).format(c.getTime()); return dayBefore; } /** * 獲得指定日期的后一天 yyyy-MM-dd * * @param date * @return */ public static String getSpecifiedDayAfter(Date date, String dateFormat) { if (date == null) return null; Calendar c = Calendar.getInstance(); c.setTime(date); int day = c.get(Calendar.DATE); c.set(Calendar.DATE, day + 1); String dayAfter = new SimpleDateFormat(dateFormat).format(c.getTime()); return dayAfter; } /** * 格式化持續(xù)時(shí)間<br/> * 將持續(xù)時(shí)間,格式化為 xx天xx小時(shí)xx分鐘xx秒 如果 "xx" 為0 自動(dòng)缺省。 * * @param seconds 持續(xù)時(shí)間,單位(秒) * @return 格式化后的字符串 * @see TimeUnit 時(shí)間單位轉(zhuǎn)換工具 * @since 1.5 */ public static String convertSeconds2Str(long seconds) { StringBuilder sb = new StringBuilder(); long[] date = {TimeUnit.SECONDS.toDays(seconds), TimeUnit.SECONDS.toHours(seconds) % 24, TimeUnit.SECONDS.toMinutes(seconds) % 60, TimeUnit.SECONDS.toSeconds(seconds) % 60}; for (int i = 0; i < date.length; i++) { long l = date[i]; if (l > 0) sb.append(l).append(UNIT_DESC[i]); } return sb.toString(); } /** * 格式化持續(xù)時(shí)間 * 將持續(xù)時(shí)間,格式化為 xx天xx小時(shí)xx分鐘xx秒 如果 "xx" 為0 自動(dòng)缺省。 * * @param seconds 持續(xù)時(shí)間,單位(分鐘) * @return 格式化后的字符串 * @see TimeUnit 時(shí)間單位轉(zhuǎn)換工具 * @since 1.5 */ public static String convertMinute2Str(long minute) { StringBuilder sb = new StringBuilder(); long[] date = {TimeUnit.SECONDS.toHours(minute) % 24,TimeUnit.SECONDS.toMinutes(minute) % 60, TimeUnit.SECONDS.toSeconds(minute) % 60}; for (int i = 0; i < date.length; i++) { long l = date[i]; if (l > 0) sb.append(l).append(UNIT_DESC[i]); } return sb.toString(); } }
以上就是關(guān)于java 日期格式化操作的所有內(nèi)容,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Java中Calendar類(lèi)用法實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Java中Calendar類(lèi)用法的相關(guān)資料,Calendar類(lèi)是Java.util包中提供的一個(gè)抽象類(lèi),該類(lèi)從JDK1.1開(kāi)始出現(xiàn),作為Date類(lèi)的替代方案,Calendar類(lèi)中包含了對(duì)不同國(guó)家地區(qū)日歷的處理,需要的朋友可以參考下2023-09-09詳解lombok @Getter @Setter 使用注意事項(xiàng)
這篇文章主要介紹了詳解lombok @Getter @Setter 使用注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Java簡(jiǎn)單實(shí)現(xiàn)猜數(shù)字游戲附C語(yǔ)言版本
猜數(shù)字是興起于英國(guó)的益智類(lèi)小游戲,起源于20世紀(jì)中期,一般由兩個(gè)人或多人玩,也可以由一個(gè)人和電腦玩。游戲規(guī)則為一方出數(shù)字,一方猜,今天我們來(lái)用Java和C語(yǔ)言分別把這個(gè)小游戲?qū)懗鰜?lái)練練手2021-11-11Springboot整合freemarker和相應(yīng)的語(yǔ)法詳解
FreeMarker是一款Spring官方推薦使用的模板引擎。接下來(lái)通過(guò)本文給大家介紹Springboot整合freemarker和相應(yīng)的語(yǔ)法,感興趣的朋友一起看看吧2021-09-09JAVA時(shí)間戳-Calendar類(lèi)使用(包括set,get,add方法)
這篇文章主要介紹了JAVA時(shí)間戳-Calendar類(lèi)使用(包括set,get,add方法),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04WebSocket實(shí)現(xiàn)聊天室業(yè)務(wù)
這篇文章主要為大家詳細(xì)介紹了WebSocket實(shí)現(xiàn)聊天室業(yè)務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08