Java获取今天、本周、本月、本季度、上月、上一年的时间范围

作者:有好多问题2024.01.17 11:48浏览量:28

简介:本文将介绍如何在Java中获取当前日期、本周、本月、本季度、上月和去年的时间范围。

在Java中,我们可以使用Java 8引入的新的日期和时间API来轻松获取当前日期、本周、本月、本季度、上月和去年的时间范围。这个API在java.time包中,它比旧的java.util.Date和java.util.Calendar类更加强大和灵活。以下是如何使用这个API来获取这些时间范围的示例:
首先,我们需要获取当前日期:

  1. import java.time.LocalDate;
  2. LocalDate today = LocalDate.now();
  1. 本周:
    1. import java.time.DayOfWeek;
    2. import java.time.LocalDate;
    3. import java.time.temporal.TemporalAdjusters;
    4. LocalDate mondayThisWeek = LocalDate.now().with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
    5. LocalDate sundayThisWeek = LocalDate.now().with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
  2. 本月:
    1. import java.time.LocalDate;
    2. import java.time.temporal.TemporalAdjusters;
    3. LocalDate firstDayOfMonth = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
    4. LocalDate lastDayOfMonth = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth());
  3. 本季度:
    1. import java.time.LocalDate;
    2. import java.time.temporal.TemporalAdjusters;
    3. import java.time.temporal.ChronoUnit;
    4. int quarter = (int) LocalDate.now().getMonth().getValue() / 3 + 1; // 1-based index (Q1 = 1, Q2 = 2, Q3 = 3, Q4 = 4)
    5. LocalDate firstDayOfQuarter = LocalDate.now().with(TemporalAdjusters.firstDayOfQuarter());
    6. LocalDate lastDayOfQuarter = LocalDate.now().with(TemporalAdjusters.lastDayOfQuarter());
  4. 上月:
    1. import java.time.LocalDate;
    2. import java.time.temporal.TemporalAdjusters;
    3. import java.time.temporal.ChronoUnit;
    4. LocalDate firstDayOfPreviousMonth = LocalDate.now().with(TemporalAdjusters.previous(ChronoUnit.MONTHS));
    5. LocalDate lastDayOfPreviousMonth = LocalDate.now().with(TemporalAdjusters.lastDayOfPreviousMonth());
  5. 去年:
    1. import java.time.LocalDate;
    2. import java.time.temporal.ChronoUnit;
    3. LocalDate firstDayOfYear = LocalDate.now().with(TemporalAdjusters.firstDayOfYear());
    4. LocalDate lastDayOfYear = LocalDate.now().with(TemporalAdjusters.lastDayOfYear());