這篇文章將為大家詳細(xì)講解有關(guān)Java中如何對(duì)日期時(shí)間進(jìn)行格式化,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)建站致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,包括網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營(yíng)銷策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營(yíng)銷等。創(chuàng)新互聯(lián)建站為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)建站核心團(tuán)隊(duì)10年專注互聯(lián)網(wǎng)開(kāi)發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹(shù)立了良好口碑。
Java格式化日期時(shí)間的方法
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.concurrent.TimeUnit; /** * ClassName: DateUtils
* Description:時(shí)間操作工具類 */ 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í)間
* 將持續(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中如何對(duì)日期時(shí)間進(jìn)行格式化就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。