gpt4 book ai didi

Java - 需要将日期字符串更改为日期,但应用偏移量

转载 作者:行者123 更新时间:2023-12-02 11:22:43 38 4
gpt4 key购买 nike

我有一个如下所示的日期字符串:

"2018-04-12T21:25:28.0000000-0700"

我需要将其转换为 Date 对象,但它需要应用 -7 偏移量,以便时间为

2:25:28 pm 

而不是

9:25:28 pm

有没有简单的方法可以做到这一点?

我尝试过:

String dateString = "2018-04-12T21:25:28.0000000-0700";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date = sdf.parse(dateString);

但我得到:

date = 12/04/2018 9:25:28 PM

not
date = 12/04/2018 2:25:28 PM

非常感谢您的帮助!

最佳答案

正如 comment by Basil Bourque 中提到的,您需要添加 7 小时才能获得 UTC/GMT 时间,而不是减去 7 小时。显示的偏移量是已应用于时间的偏移量,而不是用于获取 UTC 时间的偏移量。将其读作“偏移量 -7 小时”。

使用 Java 8 Time API,您可以这样做:

String dateString = "2018-04-12T21:25:28.0000000-0700";

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSSSSSZ");
LocalDateTime dateTime = OffsetDateTime.parse(dateString, fmt)
.atZoneSameInstant(ZoneOffset.UTC)
.toLocalDateTime();

System.out.println(dateTime.format(DateTimeFormatter.ofPattern("uuuu-MM-dd hh:mm:ss a")));

输出

2018-04-13 04:25:28 上午

关于Java - 需要将日期字符串更改为日期,但应用偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49807175/

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