gpt4 book ai didi

java - 本地日期 : parse MM-yyyy

转载 作者:搜寻专家 更新时间:2023-10-31 08:16:25 27 4
gpt4 key购买 nike

我在尝试执行以下操作后得到 java.time.format.DateTimeParseException:

LocalDate.parse( "09-2017" , DateTimeFormatter.ofPattern("MM-yyyy") )

怎么了? Java 中是否有任何实用程序可以检查 dateString 格式?

最佳答案

LocalDate 需要构建日、月和年。您的输入只有月份和年份。您必须选择任意一天并将其设置为已解析的对象以创建 LocalDate

您可以将其解析为 java.time.YearMonth,然后选择日期:

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("MM-yyyy");
YearMonth ym = YearMonth.parse("09-2017", fmt);
LocalDate dt = ym.atDay(1); // choose whatever day you want

或者您可以使用 java.time.format.DateTimeFormatterBuilderjava.time.temporal.ChronoField 来定义一天的默认值:

DateTimeFormatter fmt = new DateTimeFormatterBuilder()
// month-year
.appendPattern("MM-yyyy")
// default value for day
.parseDefaulting(ChronoField.DAY_OF_MONTH, 1)
// create formatter
.toFormatter();
LocalDate dt = LocalDate.parse("09-2017", fmt);

PS: 如果您只想检查输入是否正确,只需将其解析为 YearMonth 就足够了(它已经检查了解析值是否有效) .

关于java - 本地日期 : parse MM-yyyy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46323082/

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