时间日期API

83 阅读1分钟

1.首先在maven中引入joda-time 目前最新的2.10.10

        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.10.10</version>
        </dependency>

2.通过起始周和结束周获取 起始周的周一和结束周的周日


// 解析年份和周数
int startYear = Integer.parseInt(startDateStr.split("-")[0]);
int startWeek = Integer.parseInt(startDateStr.split("-")[1]);

int endYear = Integer.parseInt(endDateStr.split("-")[0]);
int endWeek = Integer.parseInt(endDateStr.split("-")[1]);


// 计算起始日期(周一)和结束日期(周日)

DateTime dateTime = new DateTime().withYear(year).withWeekOfWeekyear(week);
        if (dateTime.getDayOfWeek()!= DateTimeConstants.MONDAY){
            dateTime = dateTime.dayOfWeek().withMinimumValue();
        }
        DateTime endTime = dateTime.dayOfWeek().withMaximumValue();

        System.out.println(dateTime.toString("yyyy-MM-dd"));
        System.out.println(endTime.toString("yyyy-MM-dd"));
        

3.这个是通过起始周 与 结束周 计算出一共几周

 DateTime startDate = new DateTime("2023-12-04");
       DateTime endDate = new DateTime("2023-12-24");

       int weeks = Days.daysBetween(
               startDate.dayOfWeek().withMinimumValue(),
               endDate.dayOfWeek().withMaximumValue()
       ).dividedBy(7).getDays();

       System.out.println("周数: " + weeks);