Java - DateTimeFormatter不适用于德语日期字符串

prdp8dxp  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(92)

我正在尝试解析以下格式的日期字符串:“18-Feb-23”。月份是德语。我试过这个:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-LLL-yy", Locale.GERMAN);
LocalDate.parse(row.soldDate,formatter),

但我得到了这个例外

Caused by: java.time.format.DateTimeParseException: Text '18-Feb-23' could not be parsed at index 0

我也试过d-MMM-yy,但那不起作用。

q8l4jmvw

q8l4jmvw1#

我刚试过你的代码,很好用

public void func () {
    String date = "18-Mai-23";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-LLL-yy", Locale.GERMAN);
    LocalDate localDate = LocalDate.parse(date,formatter);
    System.out.println(localDate);
}

以下是输出

2023-05-18

很难从你分享的内容中猜测出来,但我认为在你的例子中,进入日期格式化程序的字符串是 impure。也就是说,它包含了一些字符(可能在输出窗口中甚至看不到),这些字符会把事情弄得一团糟。下面是你可以尝试的方法
1.不要使用“row.solDate”中的数据,而是尝试传递一个硬编码字符串。如果这样做有效,那么row.solDate中的数据是错误的
1.检查编码是否相似,即UTF-8等编码协议在应用程序的阅读部分是否相似。

相关问题