JSR-310有一个方便的类DateTimeFormatters
它可以构建一个DateTimeFormatter
。 我特别喜欢pattern(String)
方法-见的Javadoc
不过,我打了一个问题,因此这是区分大小写的 - 例如,
DateTimeFormatters.pattern("dd-MMM-yyyy");
“01-JAN-2012”,而不是 “01-JAN-2012” 或 “01-JAN-2012” 相匹配。
一种方法是向下打破串并分析成分,或其他是使用正则表达式来替换区分大小写的字符串区分大小写的字符串。
但感觉像,就必须有一个更简单的方法...
还有就是......根据用户指南 (离线,请参阅的JavaDoc代替),你应该使用DateTimeFormatterBuilder
构建复杂DateTimeFormatter
如
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.parseCaseInsensitive();
builder.appendPattern("dd-MMM-yyyy");
DateTimeFormatter dateFormat = builder.toFormatter();
这种替代是initializating静态变量有用:
DateTimeFormatter myFormatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("dd-MMM-yyyy")
.toFormatter(Locale.ENGLISH);
只是一个额外的注意,订单事宜。
这是不区分大小写:
DateTimeFormatter format = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.parseLenient()
.appendPattern("HH:mm EEEE")
.toFormatter();
这不是:
DateTimeFormatter format = new DateTimeFormatterBuilder()
.appendPattern("HH:mm EEEE")
.parseCaseInsensitive()
.parseLenient()
.toFormatter();