gpt4 book ai didi

parsing - 使用 Java 8 解析周字符串进行比较

转载 作者:行者123 更新时间:2023-12-02 11:39:31 25 4
gpt4 key购买 nike

我想比较几周的字符串表示形式,例如周“01/17”在“02/17”之前和“52/16”之后。

以下代码引发异常,我猜是因为我的字符串没有暗示每周的确切日期。不过,我不在乎 - 可能都是星期一或星期四或其他什么:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ww/YY", Locale.GERMANY);
LocalDate date1 = formatter.parse(str1, LocalDate::from);

我需要修改解析器吗?或者解析为其他格式?不幸的是,几周以来都没有像 YearMonth 这样的对象......

最佳答案

一个解决方案是始终默认为同一天,例如星期一。您可以为此构建一个自定义格式化程序:

DateTimeFormatter fmt = new DateTimeFormatterBuilder()
.appendPattern("ww/YY")
.parseDefaulting(ChronoField.DAY_OF_WEEK, 1)
.toFormatter(Locale.GERMANY);

您现在可以构建代表给定周的星期一的 LocalDate:

LocalDate d1 = LocalDate.parse("01/17", fmt);
LocalDate d2 = LocalDate.parse("52/16", fmt);
System.out.println(d1.isAfter(d2));

打印 true 因为 01/17 在 52/16 之后。

关于parsing - 使用 Java 8 解析周字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41490841/

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