java - 如何使用 JSR-310 DateTimeFormatter 解析不区分大小写的字符串?

标签 java jsr310

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

但是,我遇到了一个区分大小写的问题——例如

DateTimeFormatters.pattern("dd-MMM-yyyy");

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

一种方法是分解字符串并解析组件,或者另一种方法是使用正则表达式将不区分大小写的字符串替换为区分大小写的字符串。

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

最佳答案

还有……根据User Guide (离线,请参阅 JavaDoc),您应该使用 DateTimeFormatterBuilder 构建复杂的 DateTimeFormatter

例如

DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.parseCaseInsensitive();
builder.appendPattern("dd-MMM-yyyy");
DateTimeFormatter dateFormat = builder.toFormatter();

关于java - 如何使用 JSR-310 DateTimeFormatter 解析不区分大小写的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797808/

相关文章:

java - 无法在 Tomcat 上部署 war

java - 来自 Java API 的 Drools 规则语言

java - 如何使用 Spring MVC 将表单参数绑定(bind)到 Java 8 Duration?

java - 从整数创建 LocalDate 对象

spring - 在 Spring 使用 JSR310 java.time 时将日期、即时序列化为 ISO 8601

java - 套接字编程。程序创建 2 个连接,而不是仅 1 个

java - 一致性 : Error: Could not find or load main class com. tangosol.net.DefaultCacheServer

java - 解析 RFC 3339 日期时间时未考虑区域调整

java - Jooq LocalDateTime 字段使用系统时区而不是 session 时区

java - 使用oracle对象参数调用oracle存储过程