jsr-310有一个方便的类DateTimeFormatters,可让您构造一个DateTimeFormatter。我特别喜欢pattern(String)方法-请参见javadoc

但是,我遇到了一个区分大小写的问题-例如

DateTimeFormatters.pattern("dd-MMM-yyyy");


与“ 2012年1月1日”匹配,但与“ 2012年1月1日”或“ 2012年1月1日”匹配。

一种方法是分解字符串并解析组件,另一种方法是使用Regex将不区分大小写的字符串替换为区分大小写的字符串。

但这似乎应该是一种更简单的方法...

最佳答案

根据User Guide(离线,请参见JavaDoc),您应该使用DateTimeFormatterBuilder来构建复杂的DateTimeFormatter

例如

DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.parseCaseInsensitive();
builder.appendPattern("dd-MMM-yyyy");
DateTimeFormatter dateFormat = builder.toFormatter();

07-27 17:30