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();

10-01 03:13