文
章
目
录
章
目
录
从日期中获取季度,季度的开始和结束时间(Java)。一年有四个季度(通常表示为Q1,Q2,Q3和Q4),每个季度有三个月。这个Java教程讨论了如何获取当前运行季度的信息,当前季度的开始日期和结束日期。我们还将学习如何获取任何特定季度的开始时间和结束时间。
获取给定日期的季度
新的Java 8日期时间API包含一个名为java.time.temporal.IsoFields的类,该类包含遵循ISO-8601标准的日历系统的字段(和单位)。在这些字段中,我们有一个用于我们用例的字段,即IsoFields.QUARTER_OF_YEAR。
让我们看看如何使用此字段获取作为整数值的季度号。
LocalDate localDate = LocalDate.now(); // 给定日期
int currentQuarter = localDate.get(IsoFields.QUARTER_OF_YEAR); // returns 1, 2, 3 or 4
如果我们想以格式化模式(Q1,Q2等)获取季度号以进行显示,我们可以使用DateTimeFormatter和模式’QQQ’。
String currentQuarterStr1 = localDate.format(DateTimeFormatter.ofPattern("QQQ"));
String currentQuarterStr2 = localDate.format(DateTimeFormatter.ofPattern("QQQQ"));
System.out.println(currentQuarterStr1);
System.out.println(currentQuarterStr2);
程序输出:
Q1
1st quarter
我们可以从输出中验证,我们能够检索到当前年份的季度号。
获取季度的开始和结束日期
与前面的示例类似,我们可以使用IsoFields.DAY_OF_QUARTER
字段来访问一个季度的第一天和最后一天。让我们通过一个例子来看看。
LocalDate firstDay = localDate.with(IsoFields.DAY_OF_QUARTER, 1L);
LocalDate lastDay = firstDay.plusMonths(2).with(TemporalAdjusters.lastDayOfMonth());
System.out.println(firstDay);
System.out.println(lastDay);
程序输出:
2024-01-01
2024-03-31
这样,我们就可以找到当前季度的开始日期和结束日期。
获取两个日期之间的季度数
如果我们有两个LocalDate值,并且想要计算这两个日期之间的季度数,我们可以借助IsoFields.QUARTER_YEARS
来计算,它代表了一个季度的概念,可以如下使用:
long quarterCount = IsoFields.QUARTER_YEARS.between(startDate, endDate);
结论
这个简短的Java教程演示了如何使用新的Java 8 API来获取当前季度的信息,以及当前季度的开始和结束日期。