我正在尝试解析月份从 1 到 12(而不是从 01 到 12)的日期。
我正在尝试这个:
System.out.println(DateTimeFormatter.ofPattern("[[MM][M]yyyy").parse("112019"));
System.out.println(DateTimeFormatter.ofPattern("[[MM][M]yyyy").parse("82019"));
第一行有效,第二行失败。
即使 Myyyy 也无法解析第二行。我找不到任何能够解析 82019 的模式:(
[M][MM] 以及 [MM][M] 失败。阅读文档它说:
M/L month-of-year number/text 7; 07; Jul; July; J
所以 M 应该解析 8 和 11。
有人能够让某些东西正常工作吗?
这有效:
System.out.println(DateTimeFormatter.ofPattern("M-yyyy").parse("8-2019"));
但我得到的数据没有月份和年份之间的任何分隔。
最佳答案
也许 DateTimeFormatterBuilder
就是您正在寻找的:
String s = "112019";
System.out.println(new DateTimeFormatterBuilder()
.appendPattern("M")
.appendValue(ChronoField.YEAR, 4)
.toFormatter()
.parse(s)
);
关于java - DateTimeFormatter 个位数月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59954915/