gpt4 book ai didi

java - YYYYwwe 解析不符合预期

转载 作者:行者123 更新时间:2023-12-02 09:17:14 27 4
gpt4 key购买 nike

我创建了一个DateTimeFormatterBuilder,如下所示:

val customFormatter = new DateTimeFormatterBuilder()
.appendValue(WeekFields.ISO.weekBasedYear(), 4)
.appendValue(WeekFields.ISO.weekOfWeekBasedYear(), 2)
.appendValue(ChronoField.DAY_OF_WEEK, 1)
.toFormatter()

要解析以下字符串的周 2013014 2015233 2020117 我正在使用:

val weekFields = WeekFields.of(Locale.getDefault())
LocalDate.parse(dateString, customFormatter).get(weekFields.weekBasedYear())

结果是这样的:

+-------+----+----+---+
|partcol|year|week|day|
+-------+----+----+---+
|2013014|2013| 1| 4|
|2015233|2015| 23| 3|
|2020117|2020| 12| 7|
+-------+----+----+---+

2020 的那一周将始终比所需值高 +1。在这种情况下,我尝试解析时间信息以获取 weekBasedYearweekOfWeekBasedYearDAY_OF_WEEK

openjdk version "1.8.0_232"
OpenJDK Runtime Environment Corretto-8.232.09.1 (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM Corretto-8.232.09.1 (build 25.232-b09, mixed mode)

最佳答案

周方案不同(这就是使用 WeekFields 类的全部原因)。您使用 WeekFields.ISO 进行解析,然后使用 WeekFields.of(Locale.getDefault()) 打印回各个字段。有时这会产生不同的结果。

根据 ISO,一年中的第一周是指包含新年至少 4 天的第一周。我可以在第 1 周是包含 1 月 1 日的周的语言环境中重现您的第 12 周(与解析的第 11 周相比+1)。例如,在某些阿拉伯语语言环境(一周从星期六开始)和以色列就是这种情况(一周从星期日开始)。

我相信解决方案很简单:使用相同的 WeekFields 对象进行解析和打印(或等效的 WeekFields 对象)。

关于java - YYYYwwe 解析不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58911618/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com