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

Java 日期時間處理工具類:獲取常用時間區間的完整實現

     編輯:Java 相關知識

在業務開發中,頻繁需要計算「本週一」、「上月最後一天」、「季度首尾日」等時間區間。下文提供一個基於 Calendar 與 SimpleDateFormat 的完整工具類 TimeTest,涵蓋日、週、月、季、年等各類常用時間獲取邏輯,並包含兩日期間天數差、星期判斷等輔助方法,可直接複製到專案中使用。

核心功能清單

  • 當前日期/時間格式化輸出
  • 本週/上週/下週的週一與週日
  • 本月/上月/下月的首尾日
  • 本年/去年/明年的首尾日
  • 本季度首尾日(按月份判斷季度)
  • 兩日期間隔天數計算
  • 日期字串轉 Date、星期名稱獲取

關鍵實現片段

獲取本月最後一天

public String getDefaultDay() {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Calendar lastDate = Calendar.getInstance();
    lastDate.set(Calendar.DATE, 1);          // 設為當月 1 號
    lastDate.add(Calendar.MONTH, 1);         // 加一個月 → 下月 1 號
    lastDate.add(Calendar.DATE, -1);         // 減一天 → 本月最後一天
    return sdf.format(lastDate.getTime());
}

兩日期間隔天數

public static String getTwoDay(String sj1, String sj2) {
    SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
    try {
        Date date1 = fmt.parse(sj1);
        Date date2 = fmt.parse(sj2);
        long diff = (date1.getTime() - date2.getTime()) / (24 * 60 * 60 * 1000);
        return String.valueOf(diff);
    } catch (Exception e) {
        return "";
    }
}

使用建議

若專案使用 Java 8+,建議遷移至 java.time 套件(LocalDate、TemporalAdjusters),線程安全且 API 更直觀。此類適合維護舊版 Java 專案或快速原型開發。

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