首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jsr310 DateTimeFormatter解析不区分大小写的字符串?

如何使用jsr310 DateTimeFormatter解析不区分大小写的字符串?
EN

Stack Overflow用户
提问于 2012-05-29 18:59:41
回答 3查看 6.6K关注 0票数 19

JSR310有一个方便的类DateTimeFormatters,它允许您构造一个DateTimeFormatter。我特别喜欢pattern(String)方法--参见javadoc

然而,我遇到了一个问题,这是区分大小写的--例如

代码语言:javascript
复制
DateTimeFormatters.pattern("dd-MMM-yyyy");

匹配"01-Jan-2012",但不匹配"01-jan-2012“或"01-JAN-2012”。

一种方法是分解字符串并解析组件,另一种方法是使用Regex将不区分大小写的字符串替换为区分大小写的字符串。

但我觉得应该有更简单的方法...

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-29 18:59:41

还有..。根据User Guide (脱机,请参阅JavaDoc ),您应该使用DateTimeFormatterBuilder来构建复杂的DateTimeFormatter

例如:

代码语言:javascript
复制
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.parseCaseInsensitive();
builder.appendPattern("dd-MMM-yyyy");
DateTimeFormatter dateFormat = builder.toFormatter();
票数 27
EN

Stack Overflow用户

发布于 2016-02-03 22:58:08

这个替代方法在初始化静态变量时非常有用:

代码语言:javascript
复制
DateTimeFormatter myFormatter = new DateTimeFormatterBuilder()
                               .parseCaseInsensitive()
                               .appendPattern("dd-MMM-yyyy")
                               .toFormatter(Locale.ENGLISH);
票数 10
EN

Stack Overflow用户

发布于 2018-04-25 19:58:59

只是额外的说明,顺序很重要。

这是不区分大小写的:

代码语言:javascript
复制
            DateTimeFormatter format = new DateTimeFormatterBuilder()
                .parseCaseInsensitive()
                .parseLenient()
                .appendPattern("HH:mm EEEE")
                .toFormatter(); 

这不是:

代码语言:javascript
复制
            DateTimeFormatter format = new DateTimeFormatterBuilder()
                .appendPattern("HH:mm EEEE")
                .parseCaseInsensitive()
                .parseLenient()
                .toFormatter(); 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10797808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档