Java 8 DateTimeFormatter for month in all CAPS 不工作

标签 java java-8 java-time

<分区>

我正在尝试将日期时间字符串解析为 LocalDateTime。但是,如果我发送全部大写的月份时出现错误,是否有任何解决方法。下面是代码

@Test
public void testDateFormat(){
    DateTimeFormatter formatter= DateTimeFormatter.ofPattern("dd-MMM-yyyy HH:mm:ss");
    LocalDateTime dateTime = LocalDateTime.parse("04-NOV-2015 16:00:00", formatter); //if I send month Nov it works
    System.out.println(dateTime.getYear());
}

同样适用于 simpleDateFormat

@Test
public void testSimpleDateTime() throws ParseException{
    SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
    Date dateTime = format.parse("04-NOV-2015 16:00:00");
    System.out.println(dateTime.getTime());
}

最佳答案

回答这个问题是因为我们大多数人可能不知道 JSR 310。因此会搜索 java 8 LocalDateTime 忽略大小写。

@Test
public void testDateFormat(){
    DateTimeFormatter formatter= new DateTimeFormatterBuilder().parseCaseInsensitive().appendPattern("dd-MMM-yyyy HH:mm:ss").toFormatter();
    LocalDateTime dateTime = LocalDateTime.parse("04-NOV-2015 16:00:00", formatter);
    System.out.println(dateTime.getYear());
}

**更新*

到地区

DateTimeFormatter parser = new DateTimeFormatterBuilder().parseCaseInsensitive() .appendPattern("dd-MMM-yyyy HH:mm:ss.SS").toFormatter(Locale.ENGLISH)

关于Java 8 DateTimeFormatter for month in all CAPS 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33520491/

相关文章:

java - 加载字体文件时Eclipse Java File FileInputStream vs Input Stream

java - 从 Java 8 流 forEach 中断还是返回?

java - 在另一个 jar 中获取一个 jar 的文件系统

java - 通过 @RequestMapping 将输入字段解析为数组列表到 Controller

java - 单元测试 : assert not work?

java - 为什么在正确调用且没有语法错误的情况下会跳过此方法?

java - 在 Java 中如何等待所有异步调用完成?

java - 比较 java.time.ZonedDateTime 的实例忽略 Java 8 比较中的秒和毫秒瞬间

java - 从闰年计算年数

jsp - JSTL LocalDateTime 格式