主题切换
📅 日期工具(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:ss | Date |
parseDate(String) | yyyy-MM-dd | Date |
parseDateTime(String, String) | 自定义格式 | Date |
3. 类型转换
方法 | 转换方向 | 说明 |
---|---|---|
transformDataToLocalDate | Date → LocalDate | 日期转换 |
transformDataToLocalDateTime | Date → LocalDateTime | 日期时间转换 |
transformLocalDateToData | LocalDate → Date | 反向转换 |
transformLocalDateTimeToData | LocalDateTime → 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
⚠️ 注意事项
时区处理
- 注意系统默认时区设置
- 跨时区操作需要特别注意
- 建议使用LocalDateTime处理时区问题
格式化安全
- 日期解析前进行格式验证
- 处理异常日期格式
- 注意日期格式的一致性
性能优化
- 缓存常用的日期格式化器
- 避免频繁的日期转换
- 合理使用日期类型