Java获取某一日期的前N天(使用Calendar类)
作者:JavaWizard-M
这篇文章主要给大家介绍了关于Java如何使用Calendar类获取某一日期的前N天,我们可以使用Java中的Calendar类来获取前n天的时间,文中给出了详细的代码示例,需要的朋友可以参考下
获取当前日期的前一天,可以使用 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天内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!