jsr-310有一个方便的类DateTimeFormatters
,允许你构建一个DateTimeFormatter
。我特别喜欢pattern(String)
方法 - 请参阅javadoc
但是,我遇到了一个问题,即区分大小写 - 例如
DateTimeFormatters.pattern("dd-MMM-yyyy");
与“01-Jan-2012”匹配,但与“01-JAN-2012”或“01-jan-2012”不匹配。
一种方法是断开字符串并解析组件,或者另一种方法是使用Regex用区分大小写的字符串替换不区分大小写的字符串。
但感觉应该有一种更简单的方法......
答案 0 :(得分:19)
根据User Guide(离线,请参见JavaDoc),您应该使用DateTimeFormatterBuilder
来构建复杂的DateTimeFormatter
e.g。
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.parseCaseInsensitive();
builder.appendPattern("dd-MMM-yyyy");
DateTimeFormatter dateFormat = builder.toFormatter();
答案 1 :(得分:7)
此替代方法可用于初始化静态变量:
if
答案 2 :(得分:2)
只是额外注意,订单很重要。
这不区分大小写:
DateTimeFormatter format = new DateTimeFormatterBuilder()
.appendPattern("HH:mm EEEE")
.parseCaseInsensitive()
.parseLenient()
.toFormatter();
这不是:
void main(int argc, char** argv, Arguments& arguments)