日历工具-CalendarUtil
# 介绍
CalendarUtil是Hutool中用于处理Calendar对象的工具类,提供了丰富的Calendar操作方法,简化了日历相关的编程。
# 主要功能
# 1. Calendar对象的创建和转换
// 获取当前Calendar对象
Calendar calendar = CalendarUtil.calendar();
// 从Date对象创建Calendar
Date date = new Date();
Calendar calendar = CalendarUtil.calendar(date);
// 从时间戳创建Calendar
long timestamp = System.currentTimeMillis();
Calendar calendar = CalendarUtil.calendar(timestamp);
// 从年、月、日创建Calendar
Calendar calendar = CalendarUtil.calendar(2023, 12, 25);
// Calendar转换为Date
Date date = CalendarUtil.toDate(calendar);
# 2. 日期字段的获取和设置
// 获取年份
int year = CalendarUtil.get(calendar, Calendar.YEAR);
// 设置年份
CalendarUtil.set(calendar, Calendar.YEAR, 2024);
// 获取月份(1-12)
int month = CalendarUtil.get(calendar, Calendar.MONTH) + 1;
// 获取日
int day = CalendarUtil.get(calendar, Calendar.DAY_OF_MONTH);
// 获取小时
int hour = CalendarUtil.get(calendar, Calendar.HOUR_OF_DAY);
// 获取分钟
int minute = CalendarUtil.get(calendar, Calendar.MINUTE);
// 获取秒
int second = CalendarUtil.get(calendar, Calendar.SECOND);
# 3. 日期的增减
// 增加一年
CalendarUtil.add(calendar, Calendar.YEAR, 1);
// 减少一个月
CalendarUtil.add(calendar, Calendar.MONTH, -1);
// 增加一天
CalendarUtil.add(calendar, Calendar.DAY_OF_MONTH, 1);
// 增加一小时
CalendarUtil.add(calendar, Calendar.HOUR_OF_DAY, 1);
# 4. 日期的比较
Calendar calendar1 = CalendarUtil.calendar(2023, 12, 25);
Calendar calendar2 = CalendarUtil.calendar(2024, 1, 1);
// 比较两个Calendar对象
int compareResult = CalendarUtil.compare(calendar1, calendar2);
// 判断是否在指定日期之前
boolean isBefore = CalendarUtil.isBefore(calendar1, calendar2);
// 判断是否在指定日期之后
boolean isAfter = CalendarUtil.isAfter(calendar1, calendar2);
// 判断是否等于指定日期
boolean isEqual = CalendarUtil.isEqual(calendar1, calendar2);
# 5. 日期的格式化
// 格式化Calendar为字符串
String formatted = CalendarUtil.format(calendar, "yyyy-MM-dd HH:mm:ss");
// 使用默认格式格式化
String defaultFormatted = CalendarUtil.format(calendar);
# 6. 其他常用功能
// 获取月份的第一天
Calendar firstDayOfMonth = CalendarUtil.getFirstDayOfMonth(calendar);
// 获取月份的最后一天
Calendar lastDayOfMonth = CalendarUtil.getLastDayOfMonth(calendar);
// 获取星期几(1-7,周日为1)
int dayOfWeek = CalendarUtil.getDayOfWeek(calendar);
// 判断是否为闰年
boolean isLeapYear = CalendarUtil.isLeapYear(calendar.get(Calendar.YEAR));
# 适用场景
CalendarUtil适用于以下场景:
- 需要频繁操作
Calendar对象时 - 需要在不同日期类型之间转换时
- 需要进行日期字段的获取和设置时
- 需要进行日期的增减和比较时
- 需要格式化
Calendar对象为字符串时
通过CalendarUtil,开发者可以更加便捷地处理Calendar对象,编写更简洁、更易维护的代码。