JSR310有一个方便的类DateTimeFormatters,它允许您构造一个DateTimeFormatter。我特别喜欢pattern(String)方法--参见javadoc
然而,我遇到了一个问题,这是区分大小写的--例如
DateTimeFormatters.pattern("dd-MMM-yyyy");匹配"01-Jan-2012",但不匹配"01-jan-2012“或"01-JAN-2012”。
一种方法是分解字符串并解析组件,另一种方法是使用Regex将不区分大小写的字符串替换为区分大小写的字符串。
但我觉得应该有更简单的方法...
发布于 2012-05-29 18:59:41
还有..。根据User Guide (脱机,请参阅JavaDoc ),您应该使用DateTimeFormatterBuilder来构建复杂的DateTimeFormatter
例如:
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.parseCaseInsensitive();
builder.appendPattern("dd-MMM-yyyy");
DateTimeFormatter dateFormat = builder.toFormatter();发布于 2016-02-03 22:58:08
这个替代方法在初始化静态变量时非常有用:
DateTimeFormatter myFormatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("dd-MMM-yyyy")
.toFormatter(Locale.ENGLISH);发布于 2018-04-25 19:58:59
只是额外的说明,顺序很重要。
这是不区分大小写的:
DateTimeFormatter format = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.parseLenient()
.appendPattern("HH:mm EEEE")
.toFormatter(); 这不是:
DateTimeFormatter format = new DateTimeFormatterBuilder()
.appendPattern("HH:mm EEEE")
.parseCaseInsensitive()
.parseLenient()
.toFormatter(); https://stackoverflow.com/questions/10797808
复制相似问题