gpt4 book ai didi

java - 将时区从字符串转换为 UTC (JODA TIME)

转载 作者:行者123 更新时间:2023-12-02 01:00:56 25 4
gpt4 key购买 nike

我在数据库中存储了 UTC 时间戳。当我检索 UTC 时间戳时,我将其转换为字符串。我想获取 UTC 时间戳字符串并使用 Joda Time 将其转换为设备的本地时间。任何可以帮忙解决这个问题的人。我们将非常感激!这是我现在正在做的事情:

                String date = ""+ds.child("datecreated").getValue();

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");

DateTime dt = formatter.parseDateTime(date);

DateTime dt2 = new DateTime(dt).toDateTime(DateTimeZone.getDefault());

String personalDate = dt2.toString();

dateTV.setText(personalDate);

System.out.println("THIS IS THE FIRST TIME: " + dt + "THIS IS THE SECOND TIME: " + dt2);

问题是,当我将其转换为本地时间时,它给了我完全相同的时间,但它不应该这样做,因为它存储在 UTC 中,而我正在转换为东部标准时间,这是我的手机默认。

最佳答案

为了表明评论中的 Andreas 击中了要害:我在 America/Coral_Harbour 时区运行了以下代码片段(因为我不知道您的确切时区,所以东部标准时间在几个地方使用(尽管较少) 3 月 8 日东部夏令时间开始后))。

    String date = "2020-03-12T01:23:45.678+0000";

System.out.println("This is the string: " + date);

DateTime dt = new DateTime(date);
DateTime dt2 = new DateTime(dt).toDateTime(DateTimeZone.getDefault());

System.out.println("This is the first time: " + dt);
System.out.println("This is the second time: " + dt2);

输出是:

This is the string:      2020-03-12T01:23:45.678+0000
This is the first time: 2020-03-11T20:23:45.678-05:00
This is the second time: 2020-03-11T20:23:45.678-05:00

比较前两行,注意解析字符串时已经发生了从 UTC 到 EST 的转换。

顺便说一句,由于您的字符串采用 ISO 8601 格式,因此您不需要指定任何格式化程序来解析它。 DateTime(Object) 构造函数接受它。但在您的解析中发生了相同的转换。

你的代码发生了什么?

重复 Andreas 评论中的引用:

If the withOffsetParsed() has been called, then the resulting DateTime will have a fixed offset based on the parsed time zone. Otherwise the resulting DateTime will have the zone of this formatter, but the parsed zone may have caused the time to be adjusted.

因此,您的格式化程序具有设备的默认时区,因此也具有通过解析获得的 DateTime 对象。

因此,在创建 dt2 时,您从东部标准时间转换为东部标准时间,因此再次获得相同的日期时间。

链接: Documentation of DateTimeFormatter.parseDateTime()

关于java - 将时区从字符串转换为 UTC (JODA TIME),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60647053/

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