ISO-8601 周数据表示和操作 [已关闭]

问题描述 投票:0回答:1

我有 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 iso8601
1个回答
0
投票

您需要的内容在标准 Java 库中不可用,但在 ThreeTen-Extra 库中可用。您可以使用 YearWeek,它还有

YearWeek#isBefore
YearWeek#isAfter

下面给出了它的 Maven 依赖关系:

<dependency>
  <groupId>org.threeten</groupId>
  <artifactId>threeten-extra</artifactId>
  <version>1.7.2</version>
</dependency>

查看其主页以了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.