使用Java17获取指定日期,星期几、周、月、季度、年,第一天与最后一天日期获取

Java17获取日期

使用Java17获取指定日期,星期几、周、月、季度、年,第一天与最后一天日期获取

1. 获取日期代码

/**
     * description: 使用Java17获取指定日期,星期几、周、月、季度、年,第一天与最后一天日期获取
     *
     * @author:jinshengyuan
     * @date: 2023/12/14
     */
    @Test
    public void getDateUseJava17(){
        //使用java.time.LocalDate类获取当前时间
        LocalDate date = LocalDate.now();

        System.out.println("今天星期几?===>"+date.getDayOfWeek());
        System.out.println("当前月份===>"+date.getMonthValue());

        LocalDate lastDayOfPreviousWeek = date.with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY));
        System.out.println("上周的最后一天:" + lastDayOfPreviousWeek);
        LocalDate lastDayOfWeek = date.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
        System.out.println("本周的最后一天:" + lastDayOfWeek);


        //本月第一天、最后一天
        LocalDate firstDayOfMonth = date.with(TemporalAdjusters.firstDayOfMonth());
        System.out.println("本月第一天:" + firstDayOfMonth);
        LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
        System.out.println("本月最后一天:" + lastDayOfMonth);

        //获取季度
        int quarter = (date.getMonthValue() - 1) / 3 + 1;
        System.out.println("当前第"+quarter+"季度");
        LocalDate previousDayOfQuarter = date.minusMonths(quarter - date.getMonthValue() % 3).with(TemporalAdjusters.lastDayOfMonth());
        System.out.println("上季度的最后一天:" + previousDayOfQuarter);
        LocalDate previousLastDayOfQuarter = date.minusMonths(quarter - date.getMonthValue() % 3).with(TemporalAdjusters.firstDayOfMonth()).with(TemporalAdjusters.firstDayOfNextMonth());
        System.out.println("本季度第一天:" + previousLastDayOfQuarter);
        LocalDate lastDayOfQuarter = date.withDayOfMonth(quarter - date.getMonthValue() % 3).with(TemporalAdjusters.lastDayOfMonth());
        System.out.println("本季度的最后一天:" + lastDayOfQuarter);

        //本年第一天、最后一天
        LocalDate firstDayOfYear = date.with(TemporalAdjusters.firstDayOfYear());
        System.out.println("本年第一天:" + firstDayOfYear);
        LocalDate lastDayOfYear = date.with(TemporalAdjusters.lastDayOfYear());
        System.out.println("本年最后一天:" + lastDayOfYear);
    }

2. 输出结果

今天星期几?===>THURSDAY
当前月份===>12
上周的最后一天:2023-12-10
本周的最后一天:2023-12-17
本月第一天:2023-12-01
本月最后一天:2023-12-31
当前第4季度
上季度的最后一天:2023-08-31
本季度第一天:2023-09-01
本季度的最后一天:2023-12-31
本年第一天:2023-01-01
本年最后一天:2023-12-31