我有 ISO-8601 格式的周数据。例如:
weekA = '2012-W48'
weekB = '2013-W03'
Java中有没有一个类可以表示那几周并支持基本的时间操作?我尝试了
LocalDate.parse("2012-W48",DateTimeFormatter.ISO_WEEK_DATE);
但这会引发错误,因为这是一周,而不是实际日期(即一周中的某一天丢失了)。与 LocalDate
类类似,我希望能够执行一些基本的时间操作,例如:
weekA.isBefore(weekB)
在
true
之前,则 weekA
返回
weekB
weeksBetween(weekA,weekB)
返回两周日期之间的周数,即 weekB-weekA
以周为单位。理想情况下我只使用标准 Java 类(Java >= 11)。
您需要的内容在标准 Java 库中不可用,但在 ThreeTen-Extra 库中可用。您可以使用 YearWeek,它还有
YearWeek#isBefore
和 YearWeek#isAfter
。
下面给出了它的 Maven 依赖关系:
<dependency>
<groupId>org.threeten</groupId>
<artifactId>threeten-extra</artifactId>
<version>1.7.2</version>
</dependency>
查看其主页以了解更多信息。