【发布时间】:2019-02-04 10:00:14
【问题描述】:
我的日期格式如下:
四位数的年份,然后是两位数的星期数。
例如,2018 年的第四周将是 201804。
我在使用 Java 8 的 LocalDate 和 DateTimeFormatterBuilder 解析这些日期时遇到问题。
这是我尝试解析日期的方式:
LocalDate.parse(
"201804",
new DateTimeFormatterBuilder().appendPattern("YYYYww").parseDefaulting(WeekFields.ISO.dayOfWeek(), 1).toFormatter()
);
执行抛出以下异常:
java.time.format.DateTimeParseException:无法在索引 0 处解析文本“201804”
奇怪的行为是,当我在日期部分之间添加分隔符时,不再抛出异常:
LocalDate.parse(
"2018 04",
new DateTimeFormatterBuilder().appendPattern("YYYY ww").parseDefaulting(WeekFields.ISO.dayOfWeek(), 1).toFormatter()
);
结果:
2018-01-22
格式化程序有什么我遗漏的吗?
【问题讨论】:
-
2018年第四周还是2019年??
标签: java java-8 datetime-format date