gpt4 book ai didi

java - Joda DateTimeFormatter 设置时区时抛出异常 : "is malformed at"

转载 作者:行者123 更新时间:2023-11-29 03:25:50 27 4
gpt4 key购买 nike

我正在尝试使用 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();
}

堆栈跟踪:

java.lang.IllegalArgumentException: Invalid format: "11/15/2014 12:00 am America/Denver" is malformed at "America/Denver" at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:683) at com.happyjacksoftware.emr.actions.AddreportnotesController.create(AddreportnotesController.java:56) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597)

我实际上并没有将任何时间作为输入,所以我尝试了模式字符串 "MM/dd/yyyy ZZZ",但这没有用,我想也许 DateTime对象需要时间来实例化。但是添加时间没有用。

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

最佳答案

我已经在 J​​odaTime 2.1 - 2.3 上检查了您的代码,它工作正常。我认为您使用了一些可以以不同方式运行的旧版本。在 Joda 的当前版本中,parseDateTime 方法从第 841 行开始,您的堆栈跟踪在第 683 行显示错误。时区数据库不同,这是因为您遇到了解析异常。

关于java - Joda DateTimeFormatter 设置时区时抛出异常 : "is malformed at",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21050455/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com