# 三 日期时间工具
# 3.1 Date时间工具
该工具主要是基于java.util.Date
实现的日期时间获取工具,其主要作用如下:
- 获取今天的开始时间点(00:00:00)
- 获取昨天的开始时间点(00:00:00)和结束时间点(23:59:59)
- 获取前天的开始时间点(00:00:00)
- 获取7天前的那个时间的开始时间点(00:00:00)
- 获取14天前的那个时间的开始时间点(00:00:00)
- 获取本周一的那个时间的开始时间点(00:00:00)
- 获取上周一的那个时间的开始时间点(00:00:00)
- 获取过去指定时间的那个时间的开始时间点(00:00:00)
- 获取本月1号的那个时间的开始时间点(00:00:00)
- 获取过去指定月份的那个月份的1号的开始时间点(00:00:00)
- 获取过去指定年份的那个时间的1月1号的那个时间的开始时间点(00:00:00)
该工具是线程安全类的
工具路径:
com.yishuifengxiao.common.tool.datetime.DateOffsetUtil
使用示例:
//今天的开始时间(今天的00:00:00)
Date todayStart = DateOffsetUtil.todayStart();
//获取昨天的开始时间(昨天的00:00:00)
Date yesterdayStart = DateOffsetUtil.yesterdayStart();
//获取昨天的结束时间(昨天的23:59:59)
Date yesterdayEnd = DateOffsetUtil.yesterdayEnd();
//获取前天的开始时间(前天的00:00:00)
Date last2DayStart = DateOffsetUtil.last2DayStart();
//获取7天前那一天0时0分0秒这个时间(七天前的00:00:00)
Date last7DayStart = DateOffsetUtil.last7DayStart();
//获取本周一的开始时间(本周一的00:00:00)
Date mondayStart = DateOffsetUtil.mondayStart();
//获取本月的开始时间(本月1号的00:00:00)
Date monthStart = DateOffsetUtil.monthStart();
//获取1个月前的那个月的开始时间(1个月前的那个月的00:00:00)
Date monthStart1 = DateOffsetUtil.monthStart(1);
# 3.2 LocalDateTime时间工具
该工具主要是基于java.time.LocalDateTime
实现的日期时间获取工具,其主要作用如下:
- 获取今天的开始时间点(00:00:00)
- 获取昨天的开始时间点(00:00:00)和结束时间点(23:59:59)
- 获取前天的开始时间点(00:00:00)
- 获取7天前的那个时间的开始时间点(00:00:00)
- 获取14天前的那个时间的开始时间点(00:00:00)
- 获取本周一的那个时间的开始时间点(00:00:00)
- 获取上周一的那个时间的开始时间点(00:00:00)
- 获取过去指定时间的那个时间的开始时间点(00:00:00)
- 获取本月1号的那个时间的开始时间点(00:00:00)
- 获取过去指定月份的那个月份的1号的开始时间点(00:00:00)
- 获取过去指定年份的那个时间的1月1号的那个时间的开始时间点(00:00:00)
该工具是线程安全类的
工具路径:
com.yishuifengxiao.common.tool.datetime.TemporalUtil
使用示例:
//今天的开始时间(今天的00:00:00)
LocalDateTime todayStart = TemporalUtil.todayStart();
//获取昨天的开始时间(昨天的00:00:00)
LocalDateTime yesterdayStart = TemporalUtil.yesterdayStart();
//获取昨天的结束时间(昨天的23:59:59)
LocalDateTime yesterdayEnd = TemporalUtil.yesterdayEnd();
//获取前天的开始时间(前天的00:00:00)
LocalDateTime last2DayStart = TemporalUtil.last2DayStart();
//获取7天前那一天0时0分0秒这个时间(七天前的00:00:00)
LocalDateTime last7DayStart = TemporalUtil.last7DayStart();
//获取本周一的开始时间(本周一的00:00:00)
LocalDateTime mondayStart = TemporalUtil.mondayStart();
//获取本月的开始时间(本月1号的00:00:00)
LocalDateTime monthStart = TemporalUtil.monthStart();
//获取1个月前的那个月的开始时间(1个月前的那个月的00:00:00)
LocalDateTime monthStart1 = TemporalUtil.monthStart(1);
# 3.3 时间解析与格式化工具
该工具的主要目的是实现字符串与时间的转换以及不同格式时间的转换,主要功能如下
- 获取中国时区
- LocalDateTime与Date相互转换
- 将时间转换成毫秒数
- 将字符串解析为时间
- 将时间格式化为字符串
该工具是线程安全类的
工具路径:
com.yishuifengxiao.common.tool.datetime.DateTimeUtil
使用示例:
// 获取中国时区
ZoneId china = DateTimeUtil.zoneIdOfChina();
// 将 Date 转换成 LocalDateTime
LocalDateTime localDateTime = DateTimeUtil.date2LocalDateTime(new Date());
// 将 LocalDateTime 转换成 Date
Date date = DateTimeUtil.localDateTime2Date(LocalDateTime.now());
//将时间转换成毫秒数
Long time = DateTimeUtil.getTime(date);
Long time1 = DateTimeUtil.getTime(localDateTime);
//将时间格式化为字符串
String format = DateTimeUtil.format(date);
String format1 = DateTimeUtil.format(localDateTime);
//按照指定格式将时间格式化为字符串
String format3 = DateTimeUtil.format(date, "yyyy-MM-dd HH:mm:ss");
String format4 = DateTimeUtil.format(localDateTime, "yyyy-MM-dd HH:mm:ss");
//将字符串转换成时间
LocalDateTime parse = DateTimeUtil.parse("2021-10-10 12:12:12");
//按照指定格式将字符串转换成时间
LocalDateTime parse1 = DateTimeUtil.parse("2021-10-10 12:12:12", "yyyy-MM-dd HH:mm:ss");