如何为dd MMM yyyy设置日期格式,如2020年4月1日

时间:2020-05-19 05:51:39

标签: java

我有一个pdf文件,我想知道下一行是日期还是字符串(清单的格式有两种,知道我是否到达日期很重要。)问题是,似乎没有办法使用日期格式来得出2020年4月1日的日期

LocalDate date = parseDate( "dd MMM yyyy", "01 Apr 2020" );

抛出...无法在索引3处解析文本“ 2020年4月1日”

    private static LocalDate parseDate( final String format, final String s ) {

        final DateTimeFormatter df = DateTimeFormatter.ofPattern( format );
        LocalDate ld;   // Check if this was a legal LocalDate.
        try {
            ld = LocalDate.parse(s, df);
        } catch (java.time.format.DateTimeParseException pe) {
            System.out.println( pe.getMessage() );
            ld = null;  // This will signal an error
        }
        return ld;
    }

真的没有办法像银行在pdf中那样解析日期格式吗?

2 个答案:

答案 0 :(得分:5)

替换

final DateTimeFormatter df = DateTimeFormatter.ofPattern( format );

使用

final DateTimeFormatter df = DateTimeFormatter.ofPattern( format , Locale.US );

希望这能解决您的问题。

答案 1 :(得分:-1)

我相信您正在使用java8,可以做到

LocalDate date = LocalDate.parse("01 Apr 2020", DateTimeFormatter.ofPattern("dd MMM yyyy", Locale.ROOT));

编辑:指出并非对所有语言环境都有效。 Locale.ROOT应该用于中性语言环境。