当前位置: 首页 > 知识库问答 >
问题:

在用大写月份名称解析日期时,我得到了java。时间总体安排DateTimeParseException[重复]

蒋何平
2023-03-14

我有几行代码,如下所示

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yy");
formatter = formatter.withLocale( Locale.getDefault() );  
LocalDate date = LocalDate.parse("11-NOV-20", formatter);

这给了以下例外

 Exception in thread "main" java.time.format.DateTimeParseException: Text '11-NOV-20' could not be parsed at index 3
        at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
        at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
        at java.time.LocalDate.parse(LocalDate.java:400)
        at src.DateTimeTest.main(DateTimeTest.java:30)

如果我将月份从11月改为11月,效果很好。我从数据库表中获取此值。我是否必须按程序进行更改,或者有任何方法来处理它?

共有1个答案

段干宾白
2023-03-14

您可以配置DateTimeFormatter来忽略案例

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
                .parseCaseInsensitive()
                .appendPattern("dd-MMM-yy")
                .toFormatter(Locale.getDefault());
 类似资料:
  • 我正在尝试解析dd-MMM-yyyy格式的日期。 它抛出以下异常 它可以很好地解析dd-MM-yyyy格式,但无法解析dd-MM-yyyy格式。我厌倦了设置语言环境。美国也是,但在这种情况下也失败了。

  • 我试图告诉Gson如何解析LocalDateTime和LocalDate,但我遇到了这个错误,在我看来它应该与格式匹配。我在想,要么我对解析日期有些不了解,要么我对Gson有些不了解。 java.time.format.DateTimeParseException:无法在索引0解析文本2017101800000700

  • 这看起来是一件很简单的事情,但我没有做到。 我有一个字符串模式,它是yyyyMMddHH,我试图将其解析为LocalDateTime的一个实例 代码如下: 它引发以下异常: 无法从输入中解析HH字段 我在这里查看了javadoc,但这没有帮助。 为什么我会有这个例外?如何解决这个问题? 编辑: 我无法删除 以下是限制条件: 用户将给出和(可能是和) 模式必须始终有日期(年月日) 中的时间是可选的,

  • 我使用postgres的rails应用程序和我有一个postgresql db。我有一个要求选择和

  • 问题内容: 我正在尝试像在Python中一样解析时间戳字符串,但是在寻找一种可以处理缩写时区的解决方案时遇到了麻烦。 我正在使用的功能,但无法解析时区。是否有捷径可寻? 问题答案: 这可能不起作用,因为这些缩写不是唯一的。有关详情,请参见此页面。如果使用一组已知的输入,则可能只需要自己手动处理即可。

  • 问题内容: 我正在尝试使用Java 8 将格式化的字符串解析为对象。但是,我在解析某些输入字符串时遇到了一些问题。当我的输入字符串具有“ AM”时,它将正确解析,但是当我的字符串具有“ PM”时,它将引发异常。这是一个简单的例子: 输出: 因此可以正确解析,但是会在消息中抛出DateTimeParseException: 但是,这就是我遇到的问题。.我不太确定该错误的确切含义,但这绝对与输入字符串