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

SimpleDateFormat导致无法解析的错误

程和煦
2023-03-14

我使用以下源代码创建了自己的SDF模式:https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/text/simpledateformat.html

    SimpleDateFormat mFormatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
    ...
    private Date getLatestTimeStamp() throws ParseException {
         return mFormatter.parse("Mon, 19 Dec 2019 11:32:04 +0000");
    }

导致以下错误,我不明白原因:

java.text.ParseException: Unparseable date: "Mon, 19 Dec 2019 11:32:04 +0000"

任何帮助都会很棒!

编辑:我正在使用JDK 13

import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;

public class Main {

    public static void main(String[] args) {

        String source = "Thu, 19 Dec 2019 11:32:04 +0000";
        DateTimeFormatter mFormatter = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss Z");

       System.out.println(OffsetDateTime.parse(source, mFormatter));
    }
}

进程结束,退出代码为%1

共有1个答案

微生欣怡
2023-03-14

您应该使用RFC_1123_DATE_TIME格式化程序。

public static void main(String[] args) {
    String source = "Thu, 19 Dec 2019 11:32:04 +0000";
    DateTimeFormatter mFormatter = DateTimeFormatter.RFC_1123_DATE_TIME;

    System.out.println(OffsetDateTime.parse(source, mFormatter));
}

顺便说一句,您的模式很好,您应该添加.withlocale()

DateTimeFormatter mFormatter = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss Z").withLocale(Locale.US);
 类似资料:
  • 问题内容: 在照顾了几个现有的帖子之后,我仍然无法使我的SimpleDateFormat解析器正常工作。这是代码: 我总是以ParseException结尾。这是调试消息的输出: 06-09 23:52:17.478:DEBUG / DEBUG(2436):java.text.ParseException:无法解析的日期:06-09 23:52:17.478:DEBUG / DEBUG(2436)

  • 并在app.module.ts中注册 根据课程,下面应该将服务注入到我的组件中(但会导致前面提到的错误) 我可以按照以下方式修改代码来修复这个问题

  • 问题内容: 我正在尝试从标准Oracle Java教程 运行此练习脚本。 这似乎是一个常见错误,我已经使用SO资源来尝试解决此问题。我已经尝试过清理项目,刷新项目,切换工作场所并切换回去,删除并重新添加了JRE7。 我不知道该怎么办 问题答案: 根据Javadoc, 因此,升级到Java 8,或尝试查找本教程的旧版本。 我是新来的。你怎么能知道你正在跑步?我正在使用Eclipse 要确定您当前的e

  • 这里是Java新手, null 我使用的是eclipse 3.7.2。 谢谢你的帮助

  • 问题内容: 代码如下所示: 在上面的代码中,抛出不可解析的日期异常: 我不知道原因。 问题答案: 为什么要将日期转换为字符串并将其解析回日期? 代码失败的原因是因为您试图使用仅接受dd-MMM-yyy格式的日期的格式化程序转换完整日期。

  • 问题内容: 我有这个日期,似乎无法正确解析。 字符串文本“ 2014年5月21日星期三05:44:09 -0700”; 这是我的日期格式 我正在尝试使用SimpleDateFormat对其进行解析。 错误字符串无法分析。 我在这里做错了。 请注意,这不是重复项。另一个问题中没有描述使用强制语言环境的解决方案。 问题答案: 要解析您的日期,您可以使用 但是如果失败了,您会看到 java.text.P