jsr-310有一个方便的类DateTimeFormatters,允许你构建一个DateTimeFormatter.我特别喜欢这个pattern(String)方法 - 请参阅javadoc
但是,我遇到了一个问题,即这是区分大小写的 - 例如
DateTimeFormatters.pattern("dd-MMM-yyyy");
Run Code Online (Sandbox Code Playgroud)
与"01-Jan-2012"匹配,但不与"01-JAN-2012"或"01-jan-2012"匹配.
一种方法是断开字符串并解析组件,或者另一种方法是使用Regex用区分大小写的字符串替换不区分大小写的字符串.
但感觉应该有一个更简单的方法......
ama*_*ent 21
并且......根据用户指南(离线,请参阅JavaDoc),您应该使用DateTimeFormatterBuilder构建复杂的DateTimeFormatter
例如
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.parseCaseInsensitive();
builder.appendPattern("dd-MMM-yyyy");
DateTimeFormatter dateFormat = builder.toFormatter();
Run Code Online (Sandbox Code Playgroud)
此替代方法可用于初始化静态变量:
DateTimeFormatter myFormatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("dd-MMM-yyyy")
.toFormatter(Locale.ENGLISH);
Run Code Online (Sandbox Code Playgroud)
只是额外注意一下,顺序很重要。
这是不区分大小写的:
DateTimeFormatter format = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.parseLenient()
.appendPattern("HH:mm EEEE")
.toFormatter();
Run Code Online (Sandbox Code Playgroud)
这不是:
DateTimeFormatter format = new DateTimeFormatterBuilder()
.appendPattern("HH:mm EEEE")
.parseCaseInsensitive()
.parseLenient()
.toFormatter();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3629 次 |
| 最近记录: |