简介:本文将介绍如何在Java中获取当前日期、本周、本月、本季度、上月和去年的时间范围。
在Java中,我们可以使用Java 8引入的新的日期和时间API来轻松获取当前日期、本周、本月、本季度、上月和去年的时间范围。这个API在java.time包中,它比旧的java.util.Date和java.util.Calendar类更加强大和灵活。以下是如何使用这个API来获取这些时间范围的示例:
首先,我们需要获取当前日期:
import java.time.LocalDate;LocalDate today = LocalDate.now();
import java.time.DayOfWeek;import java.time.LocalDate;import java.time.temporal.TemporalAdjusters;LocalDate mondayThisWeek = LocalDate.now().with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));LocalDate sundayThisWeek = LocalDate.now().with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
import java.time.LocalDate;import java.time.temporal.TemporalAdjusters;LocalDate firstDayOfMonth = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());LocalDate lastDayOfMonth = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth());
import java.time.LocalDate;import java.time.temporal.TemporalAdjusters;import java.time.temporal.ChronoUnit;int quarter = (int) LocalDate.now().getMonth().getValue() / 3 + 1; // 1-based index (Q1 = 1, Q2 = 2, Q3 = 3, Q4 = 4)LocalDate firstDayOfQuarter = LocalDate.now().with(TemporalAdjusters.firstDayOfQuarter());LocalDate lastDayOfQuarter = LocalDate.now().with(TemporalAdjusters.lastDayOfQuarter());
import java.time.LocalDate;import java.time.temporal.TemporalAdjusters;import java.time.temporal.ChronoUnit;LocalDate firstDayOfPreviousMonth = LocalDate.now().with(TemporalAdjusters.previous(ChronoUnit.MONTHS));LocalDate lastDayOfPreviousMonth = LocalDate.now().with(TemporalAdjusters.lastDayOfPreviousMonth());
import java.time.LocalDate;import java.time.temporal.ChronoUnit;LocalDate firstDayOfYear = LocalDate.now().with(TemporalAdjusters.firstDayOfYear());LocalDate lastDayOfYear = LocalDate.now().with(TemporalAdjusters.lastDayOfYear());