我如何在java中解析〜德语自定义格式的日期?

问题描述 投票:0回答:1

我想解析为

LocalDate
我收到的日期,格式如下,但带有德国月份:

  • 2023 年 8 月 15 日
  • 2024 年 5 月 30 日
  • 2021 年 10 月 13 日
  • 31-先生-2034
  • 02-Dez-2013

我简化了应该解析这些格式化日期的代码(月份是德语),但它仍然无法在 jdk 11.0.7 和 openjdk 11.0.13 上工作

    public static void main(String args[]) {
        String txt = "15-Aug-2023";
        DateTimeFormatter format =  new DateTimeFormatterBuilder()
                .appendPattern("dd-MMM-yyyy")
                .toFormatter(Locale.GERMAN);
        LocalDate.parse(txt, format);
    }

抛出异常:

线程“main”中的异常java.time.format.DateTimeParseException: 无法在索引 3 处解析文本“15-Aug-2023”

我错过了什么?

PS 刚刚注意到,如果我这样做:

System.out.println(format.format(LocalDate.now()));

我得到:

2023 年 10 月 24 日

如何克服这个意想不到的问题?

java datetime java-time
1个回答
0
投票

这对我来说:

public class Main {
    public static void main(String[] args)  {
        String txt = "15-Aug-2023";
        DateTimeFormatter format =  new DateTimeFormatterBuilder()
                .appendPattern("dd-LLL-yyyy")
                .toFormatter(Locale.GERMAN);
        System.out.println(LocalDate.parse(txt, format));
    }
}

打印时间:2023-08-15

https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

© www.soinside.com 2019 - 2024. All rights reserved.