当前位置: 首页 > 面试题库 >

为什么在Java 8中OffsetDateTime无法解析'2016-08-24T18:38:05.507 + 0000'

卫子平
2023-03-14
问题内容

表达方式

OffsetDateTime.parse("2016-08-24T18:38:05.507+0000")

导致以下错误:

java.time.format.DateTimeParseException:无法在索引23处解析文本‘2016-08-24T18:38:05.507
+ 0000’

另一方面,

OffsetDateTime.parse("2016-08-24T18:38:05.507+00:00")

如预期般运作。

DateTimeFormatter的文档页面提到了不带冒号的区域偏移量作为示例。我究竟做错了什么?我不想破坏我的日期字符串来安抚Java。


问题答案:

您正在调用以下方法。

public static OffsetDateTime parse(CharSequence text) {
    return parse(text, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
}

DateTimeFormatter.ISO_OFFSET_DATE_TIME如javadocDateTimeFormatter所述,它使用use来执行以下操作:

ISO日期时间格式化程序,用于格式化或解析具有偏移量的日期时间,例如“ 2011-12-03T10:15:30 + 01:00”。

如果您想使用其他格式解析日期,2016-08-24T18:38:05.507+0000则应使用OffsetDateTime#parse(CharSequence, DateTimeFormatter)。以下代码可以解决您的问题:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
OffsetDateTime.parse("2016-08-24T18:38:05.507+0000", formatter);


 类似资料:
  • 我试图将文本解析为持续时间,如下所示: 但是我得到以下错误, 有人能告诉我我的问题在哪里吗?

  • 类无法解析,为什么?这就引出了一个问题:在哪里可以找到的javadoc? null

  • 问题内容: 我在文件中有此JSON: 我编写了以下脚本来打印所有JSON数据: 但是,该程序会引发异常: 如何解析JSON并提取其值? 问题答案: 您的数据不是有效的JSON格式。您有什么时候应该拥有: 用于JSON数组,在Python 中称为 用于JSON对象(在Python 中称为JSON对象) JSON文件的外观如下: 然后,您可以使用您的代码: 有了数据,您现在还可以找到类似的值: 试试看

  • 我有一个常春藤和人工制品设置要发布,并依赖于构建。 在Artifactory中,我有一个Ivy文件,大致如下: 当我在另一个项目中依赖这个模块时,我指定了编译配置,但IvyDE告诉我编译不存在。 在这个设置中,我得到了错误消息 “在组织#模块中找不到配置;0.277-快照:'编译'” 如果依赖conf更新为编译,我确实会得到jar- 有什么建议吗?

  • 我经常遇到这样的异常: 我做错了什么?