gpt4 book ai didi

java - SimpleDateFormat 错误地将 UTC 转换为时区

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

我在转换以下 ISO 字符串 2017-09-01T01:00:00.000Z 时遇到问题约会。

我正在使用SimpleDateFormat如下

SimpleDateFormat stringToDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
Date date = stringToDate.parse("2017-09-01T01:00:00.000Z");

日期对象输出的日期如下所示

Fri Sep 01 01:00:00 MDT 2017

什么时候我应该得到输出

Fri Sep 01 01:00:00 UTC 2017

或者

Fri Aug 31 19:00:00 MDT 2017

看起来它没有正确执行时区转换,因为时间没有更改,但时区已经是不应该更改或两者都不应该更改的时候。

最佳答案

  1. 'Z' 周围的单引号意味着它不会被解释为 UTC 的时区说明符:它只是字符串中的文字 Z,被丢弃。

    由于您没有专门在 SimpleDateFormat 上设置时区,因此将在 JVM 的默认时区中解析日期。

  2. Date.toString() 使用 JVM 的默认时区。 Date 中没有时区。如果要在特定时区打印,则需要使用 SimpleDateFormat 来打印。

关于java - SimpleDateFormat 错误地将 UTC 转换为时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43081049/

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