apache的时间工具类DateUtils
org.apache.commons.lang3.DateUtils是Apache提供的时间工具类。
<!-- StringUtils、NumberUtils等工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
</dependency>
字符串转日期
parseDate()和parseDateStrictly()区别是:
parseDateStrictly()会严格校验时间格式,如示例中7月是没有32日的,所以会转换错误,而parseDate()可以正常转换,并不会报错。
Date date = DateUtils.parseDate("20230732010101", "yyyyMMddHHmmss");
//输出:20230801010101
Date date = DateUtils.parseDateStrictly("20230732010101", "yyyyMMddHHmmss");
//输出:java.text.ParseException: Unable to parse the date: 20230732010101
日期转字符串
DateFormatUtils.format(new Date(), "yyyyMMddHHmmss")
//输出:20230728155345
指定时间加减指定数量个周期
Date date = DateUtils.addDays(new Date(), 1);
DateFormatUtils.format(date, "yyyyMMddHHmmss");
//输出:20230729155137
Date date = DateUtils.addYears(new Date(), 1);
//输出:20240728155217
设置指定时间
Date date = DateUtils.setDays(new Date(), 10);
DateFormatUtils.format(date, "yyyyMMddHHmmss");
//输出:20230710155834
Date date = DateUtils.setMinutes(new Date(), 10);
DateFormatUtils.format(date, "yyyyMMddHHmmss");
//输出:20230728151009
根据指定时间获取一个时间范围
第一个参数是目标日期。
第二个参数是控制时间范围的,即:是周范围还是月范围,是将目标日期作为起始日期,还是中心日期。
//以当前时间为起始日期,以一周后日期为终止日期
Iterator<Calendar> it = DateUtils.iterator(new Date(), DateUtils.RANGE_WEEK_RELATIVE);
while(it.hasNext()) {
Calendar c = it.next();
System.out.println(DateFormatUtils.format(c.getTime(), "yyyyMMddHHmmss"));
}
//输出:
//20230728000000
//20230729000000
//20230730000000
//20230731000000
//20230801000000
//20230802000000
//20230803000000
判断两日期是否同天
//判断两日期是否同天
boolean same = DateUtils.isSameDay(new Date(), new Date());
//输出:true
//判断两日期是否同毫秒
boolean same = DateUtils.isSameInstant(new Date(), new Date());
//输出:true
获取日期上限
如果日期时间为2023年7月28日13:45:01:231,上限周期设置为HOUR,获取目标时间是:2023年7月28日14:00:00.000;如果上限周期是MONTH,获取目标时间是:2023年8月1日0:00:00.000。
Date date = DateUtils.ceiling(new Date(), Calendar.YEAR);
DateFormatUtils.format(date, "yyyyMMddHHmmss");
//输出:20240101000000
标签:
实用技巧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
2021-11-26 常用的JVM参数
2021-11-26 Java程序生成Heap dump几种方式
2021-11-26 关于linux下,ls vi等命令失效的解决方法(配置下环境变量出现问题)