gpt4 book ai didi

java - Android 日期时间解析

转载 作者:行者123 更新时间:2023-12-01 12:55:55 31 4
gpt4 key购买 nike

如何在 Android 中解析这样的日期时间

2014-05-19T07:16:29.63+00:00

?我尝试根据 SimpleDateFormatter 使用 "yyyy-MM-dd'T'HH:mm:ss.SSZZZZZ" ,但似乎 ZZZZZ 的结果与 Z 相同。

最佳答案

java.time

旧版日期时间 API(java.util 日期时间类型及其格式化 API SimpleDateFormat)已过时且容易出错。建议完全停止使用它并切换到java.timemodern date-time API *

另外,请查看 Home Page of Joda-Time 中的以下通知;

Joda-Time is the de facto standard date and time library for Javaprior to Java SE 8. Users are now asked to migrate to java.time(JSR-310).

使用现代 API 的解决方案:

现代日期时间 API 基于 ISO 8601只要日期时间字符串符合 ISO 8601 标准,就不要求您显式使用 DateTimeFormatter 对象。

import java.time.OffsetDateTime;

public class Main {
public static void main(String[] args) {
OffsetDateTime odt = OffsetDateTime.parse("2014-05-19T07:16:29.63+00:00");
System.out.println(odt);
}
}

输出:

2014-05-19T07:16:29.630Z

输出中的 Ztimezone designator零时区偏移。它代表 Zulu,并指定 Etc/UTC 时区(时区偏移为 +00:00 小时)。

无论出于何种原因,如果您需要将 OffsetDateTime 对象转换为 java.util.Date 对象,可以按如下方式操作:

Date date = Date.from(odt.toInstant());

了解有关 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 - Android 日期时间解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23902492/

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