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

设置时区时引发的Joda DateTimeFormatter异常:“is malformed at”

江正德
2023-03-14

我试图使用Joda库的DateTimeFormatter从字符串解析DateTime对象。出于某种原因,当它到达要解析的时区时,它会引发异常。

下面是我的代码

    protected static final String DEFAULT_TIMEZONE = "America/Denver";
    // Parse the date for the note
    DateTimeFormatter dtFormatter = DateTimeFormat.forPattern("MM/dd/yyyy hh:mm a ZZZ");
    String dateStr = defaultMonth + "/15/" + defaultYear + " 12:00 am " + DateTimeZone.forID(DEFAULT_TIMEZONE);
    try {
        DateTime noteDate = dtFormatter.parseDateTime(dateStr);
    } catch(Exception e) {
        e.printStackTrace();
    }

注意:我确实用模式字符串“mm/dd/yyyy hh:mm a z”和字符串11/15/2014 12:00 am-0700尝试了这种方法,但是获得数字偏移量对我来说不太方便,所以我希望有一个使用时区ID的解决方案。

共有1个答案

冯德宇
2023-03-14

我已经检查了Jodatime2.1-2.3上的代码,它工作正常。我认为你使用了一些旧版本,可以以不同的方式表现。在当前版本的Joda中,parseDateTime方法从第841行开始,stacktrace在第683行显示错误。时区数据库是不同的,这是因为你得到了解析异常。

 类似资料:
  • 问题内容: 当我使用下面的代码时,在什么情况下会得到异常。 任何人都可以帮忙吗???????? 问题答案: HTTP状态代码是服务器的响应,因此,如果您控制服务器,则可以使其返回所需的任何错误。如果您无法控制服务器,则可以尝试发送错误/无效的请求,以便服务器进行投诉。 在服务器端这样的事情:

  • 我有一个简单的Spring Boot服务,它使用JMSTemplate监听AWS SQS队列。当消息得到正确处理时,一切都按预期进行。 我使用的是CLIENT_ACKNOWLEDGE,因此当处理过程中抛出异常时,会再次接收消息。但是,将忽略SQS队列上的默认可见性超时设置,并立即再次接收消息。 SQS队列配置了30秒的默认可见性超时和20次接收的重新驱动策略,然后再将消息放入DLQ。 我已禁用该服

  • 我已经创建了一个解码器来处理客户端发送的字节。给你 并在客户端发送字节时抛出下一个错误 Io.netty.handler.codec.DecoderException:java.lang.IllegalArgumentException:MinimumReadableBytes:-603652096(预期:>=0)在io.netty.handler.codec.ReplayingDecoder.C

  • 我正在尝试使用以下代码将我的fxml文件集成到我的项目中, 程序在第二行崩溃,引发此异常, 也试过了, 我不知道这是否相关,但这是我的iml文件, 是什么原因造成的?我该如何修复它? 这里是我的项目的一个拉链,如果有人想看一下。 谢谢, 亨利

  • 你可以使用raise语句 引发 异常。你还得指明错误/异常的名称和伴随异常 触发的 异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。 如何引发异常 例13.2 如何引发异常 #!/usr/bin/python # Filename: raising.py classShortInputException(Exception):     '''A u