java - DateTimeFormatter 个位数月份

标签 java date

我正在尝试解析月份从 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/

相关文章:

javascript - 如何使用 Ext JS 格式化方法在单元测试期间格式化日期?

java - 识别日期格式

linux - bash 脚本执行日期/时间

java - 初始化我的 Lexer 在 Antlr4 中抛出错误

JAVA:JFrame 变为黑色后的屏幕截图

java - 插入不能正常工作

iOS App 不同的时区处理不同的日期条目

sql - 为什么此查询针对不同的日期格式返回不同的结果?

Java - 是否可以将 setEditable(boolean b) 应用于 JSlider/

java - 在 postgresql 中使用文本类型列转义双引号并通过 jackson 解析 json