首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

DateTools 日期時間工具類全解析:週期計算、格式化、偏移、差值、閏年判斷

     編輯:Java 綜合教學

核心功能一覽

  • 支援 ISO (週日為週首) 與 GBK (週一為週首) 兩種週制
  • 取得當前時間、任意格式化輸出
  • 計算指定日期所在年份的第幾週、該週所有日期
  • 依年份與週數取得該週日期陣列
  • 判斷指定日期星期幾
  • 計算指定年份總週數
  • 兩日期差值 (毫秒/秒/分/時/天)
  • 日期前後偏移 (分鐘/小時/月)
  • 日期格式互轉 (String ↔ Date ↔ Long)
  • 計算某年某月天數 (含閏年判斷)

關鍵方法簽名與說明

方法參數返回說明
getDate(fmt)格式字串String當前時間格式化
getWeekOfYear(date, fmt)日期、格式int該日期屬於當年第幾週
getWeekDay(date, oldFmt, newFmt)日期、輸入格式、輸出格式String[7]該日期所在週的 7 天日期陣列
getWeekDate(year, week, newFmt)年份、週數、輸出格式String[7]指定年份第 N 週的 7 天日期
getDayOfWeek(date, oldFmt, fmt)日期、輸入格式、輸出前綴String星期幾 (如 "週3")
getWeekNum(year)年份字串int該年總週數
cntTimeDifference(s, e, fmt, refmt)開始、結束、格式、差值單位String兩日期差值
getBeforeTime(date, fmt, min, newFmt)日期、格式、分鐘偏移、輸出格式String日期向前/後偏移分鐘
fmtDate(date, oldFmt, newFmt)日期、舊格式、新格式String日期格式轉換
getMonthDays(year, month)年、月int該月天數

使用範例

DateTools dt = new DateTools(DateTools.WEEK_OF_GBK); // 週一為週首
System.out.println(dt.getDate("yyyy-MM-dd HH:mm:ss"));
System.out.println("本年第 " + dt.getWeekOfYear("2024-07-01", "yyyy-MM-dd") + " 週");
String[] week = dt.getWeekDay("2024-07-01", "yyyy-MM-dd", "MM/dd");
for (String d : week) System.out.print(d + " ");
System.out.println("\n2024 年第 1 週:" + Arrays.toString(dt.getWeekDate("2024", 1, "yyyy-MM-dd")));
System.out.println(dt.cntTimeDifference("2024-01-01", "2024-07-01", "yyyy-MM-dd", "d") + " 天");

設計亮點

  • 統一使用 Calendar 進行日期運算,避免 Date 過時方法。
  • 透過 ParsePosition(0) 容錯解析。
  • 提供多重 fmtDate 過載支援 String/Date/Long 輸入。
  • 閏年判斷邏輯:year%400==0 || (year%4==0 && year%100!=0)。

注意: JDK 8+ 建議遷移至 java.time 套件 (LocalDate, TemporalAdjusters) 獲得更佳線程安全與 API 設計。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved