Java获取某一日期的前N天(使用Calendar类)
获取当前日期的前一天,可以使用 Java 自带的 Calendar 类,这里提供两种实现方式:
使用 Calendar 类
// 获取 Calendar 实例 Calendar calendar = Calendar.getInstance(); // 设置为当前日期 calendar.setTime(new Date()); // 将日期减去一天 calendar.add(Calendar.DATE, -1); // 获取前一天日期 Date yesterday = calendar.getTime();
使用 Java 8 新特性 LocalDate
// 获取当前日期 LocalDate today = LocalDate.now(); // 获取前一天日期 LocalDate yesterday = today.minusDays(1); // 转换为 Date 类型 Date date = Date.from(yesterday.atStartOfDay(ZoneId.systemDefault()).toInstant());
第二种方法使用了 Java 8 中引入的新日期时间 API,可以更方便地进行日期计算,不过需要注意,由于其是在 Java 8 中引入的,如果你的项目使用的是旧版本的 Java,则该方法不可用。
附:获取n天后的对应的工作日日期
/**
*
* 根据开始日期 ,需要的工作日天数 ,计算n天后的日期(周六日不包含)
* @param startDate 开始日期
* @param workDays 天数
*
*/
public static String getAfterWorkDays(Date startDate, int workDays) {
Calendar c1 = Calendar.getInstance();
c1.setTime(startDate);
for (int i = 0; i < workDays; i++) {
c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);
if (Calendar.SATURDAY == c1.get(Calendar.SATURDAY) || Calendar.SUNDAY == c1.get(Calendar.SUNDAY)) {
workDays = workDays + 1;
c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);
continue;
}
}
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(c1.getTime()) + " " + getWeekOfDate(c1.getTime()));
return df.format(c1.getTime());
}总结
到此这篇关于Java获取某一日期的前N天的文章就介绍到这了,更多相关Java获取日期前N天内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java通过Process类Runtime.getRuntime().exec()执行bat脚本程序
用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这篇文章主要给大家介绍了关于Java如何通过Process类Runtime.getRuntime().exec()执行bat脚本程序的相关资料,需要的朋友可以参考下2024-01-01
MyBatis注解开发-@Insert和@InsertProvider的使用
这篇文章主要介绍了MyBatis注解开发-@Insert和@InsertProvider的使用,具有很好的参考价值,希望对大家有所帮助。2022-07-07
Springboot整合camunda+mysql的集成流程分析
本文介绍基于mysql数据库,如何实现camunda与springboot的集成,如何实现基于springboot运行camunda开源流程引擎,本文分步骤图文相结合给大家介绍的非常详细,需要的朋友参考下吧2021-06-06


最新评论