我有一个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中那样解析日期格式吗?
答案 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应该用于中性语言环境。