Skip to content

📅 日期工具(DateHelper)

📖 功能介绍

TIP

DateHelper 是一个功能强大的日期处理工具类,提供了日期格式化、解析、转换、计算等全方位的日期操作功能,支持 Date、LocalDate、LocalDateTime、Instant 等多种日期类型。

🛠️ 核心功能

1. 日期格式化

方法输入类型说明
formatDate(Date)Date格式化为 yyyy-MM-dd HH:mm:ss
formatDate(LocalDate)LocalDate格式化为 yyyy-MM-dd
formatDate(LocalDateTime)LocalDateTime格式化为 yyyy-MM-dd HH:mm:ss
formatDate(Instant)Instant格式化为 yyyy-MM-dd HH:mm:ss
formatDate(Date, String)Date, pattern自定义格式化

2. 日期解析

方法输入格式返回类型
parseDateTime(String)yyyy-MM-dd HH:mm:ssDate
parseDate(String)yyyy-MM-ddDate
parseDateTime(String, String)自定义格式Date

3. 类型转换

方法转换方向说明
transformDataToLocalDateDate → LocalDate日期转换
transformDataToLocalDateTimeDate → LocalDateTime日期时间转换
transformLocalDateToDataLocalDate → Date反向转换
transformLocalDateTimeToDataLocalDateTime → Date反向转换

💡 使用示例

1. 日期格式化

java
// 基本格式化
Date now = new Date();
String dateStr = DateHelper.formatDate(now);  // 2024-03-01 12:34:56

// 自定义格式
String customFormat = DateHelper.formatDate(now, "yyyy年MM月dd日");  // 2024年03月01日

// LocalDateTime格式化
LocalDateTime localDateTime = LocalDateTime.now();
String ldtStr = DateHelper.formatDate(localDateTime);  // 2024-03-01 12:34:56

2. 日期解析

java
// 解析日期时间
Date date = DateHelper.parseDateTime("2024-03-01 12:34:56");

// 解析日期
Date dateOnly = DateHelper.parseDate("2024-03-01");

// 自定义格式解析
Date customDate = DateHelper.parseDateTime("2024年03月01日", "yyyy年MM月dd日");

3. 日期计算

java
// 获取日期间隔
Date date1 = DateHelper.parseDate("2024-03-01");
Date date2 = DateHelper.parseDate("2024-03-10");
int days = DateHelper.getDateDiff(date1, date2);  // 9

// 获取指定日期前后
Date beforeDate = DateHelper.getDataDiff(new Date(), -7);  // 7天前

4. 时间区间处理

java
// 获取开始时间
Date startTime = DateHelper.getStartDateTime(new Date());  // 2024-03-01 00:00:00

// 获取结束时间
Date endTime = DateHelper.getEndDateTime(new Date());  // 2024-03-01 23:59:59

// 判断日期交集
boolean hasIntersect = DateHelper.isDateIntersect(
    startDate1, endDate1,
    startDate2, endDate2
);

5. 日期信息获取

java
// 获取星期
String weekDay = DateHelper.getWeekStr(new Date());  // 星期五

// 获取当前日期信息
int year = DateHelper.getCurrentYear();    // 2024
int month = DateHelper.getCurrentMonth();  // 3
int day = DateHelper.getCurrentDay();      // 1

⚠️ 注意事项

  1. 时区处理

    • 注意系统默认时区设置
    • 跨时区操作需要特别注意
    • 建议使用LocalDateTime处理时区问题
  2. 格式化安全

    • 日期解析前进行格式验证
    • 处理异常日期格式
    • 注意日期格式的一致性
  3. 性能优化

    • 缓存常用的日期格式化器
    • 避免频繁的日期转换
    • 合理使用日期类型