gpt4 book ai didi

java - 无法解析的日期,以冒号分隔时区

转载 作者:太空宇宙 更新时间:2023-11-04 06:55:02 25 4
gpt4 key购买 nike

我正在尝试解析这个字符串

2014-04-04T14:28:38+02:00

它应该是 ISO 8601 格式。但我无法将其解析为正确的日期。我尝试过以下方法:

   String example = "2014-04-04T14:28:38+02:00"
public final static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz")
Date tempDate = df.parse(example)

但我总是收到消息“无法解析的日期”我无法更改该示例,因为它是来自网络服务的值。

难道“+02:00”而不是“+0200”有问题?

非常感谢

最佳答案

java.time

现代日期时间 API 基于 ISO 8601因此,您不需要显式使用解析器(例如 DateTimeFormatter)来解析给定的日期时间字符串,因为它已经采用 ISO 8601 格式。

演示:

import java.time.OffsetDateTime;
import java.util.Date;

public class Main {
public static void main(String args[]) {
OffsetDateTime odt = OffsetDateTime.parse("2014-04-04T14:28:38+02:00");
System.out.println(odt);

// In case you need java.util.Date
Date date = Date.from(odt.toInstant());
// ...
}
}

输出:

2014-04-04T14:28:38+02:00

了解有关 modern date-time API 的更多信息* 来自 Trail: Date Time

<小时/>

* 无论出于何种原因,如果您必须坚持使用 Java 6 或 Java 7,则可以使用 ThreeTen-Backport它将大多数 java.time 功能向后移植到 Java 6 和 7。如果您正在从事 Android 项目,并且您的 Android API 级别仍然不符合 Java-8,请检查 Java 8+ APIs available through desugaringHow to use ThreeTenABP in Android Project

关于java - 无法解析的日期,以冒号分隔时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22864571/

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