gpt4 book ai didi

java - 根据java 8中的偏移量转换UTC时间

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

我得到了字符串中的时间和偏移量。

时间采用 UTC 格式,我必须根据偏移量转换该时间,然后将其分配给 Calendar 对象。

问题是我正在使用 OffsetDateTime 类的 plusHours() 方法。我得到了相同的结果。

OffsetDateTime odtB = OffsetDateTime.parse( "2018-03-26T06:00:00Z" ) ;
odtB.plusHours(2);
System.out.println(odtB);

例如,如果我的日期是“2018-03-26T06:00:00Z”并且偏移/时区值是“+02:00”如何更改它以获取输出” 2018-03-26T08:00:00Z"

最佳答案

首先要做的事情是:plusHours 方法返回另一个 OffsetDateTime,但它不会更改原始值。要获取该方法的结果,您需要将其分配给一个变量:

OffsetDateTime odtB = OffsetDateTime.parse("2018-03-26T06:00:00Z");
odtB = odtB.plusHours(2);
System.out.println(odtB);

这将打印:

2018-03-26T08:00Z

现在回答你的问题:

For example if my date is "2018-03-26T06:00:00Z" and offset/Timezone value is "+02:00" how to change it for getting output "2018-03-26T08:00:00Z"?

我认为您误解了一些概念。最后的 ZUTC designator ,与 +00:00 相同。

上面的日期(2018-03-26T06:00:00Z2018-03-26T08:00Z)均采用 UTC 格式,每个日期都代表一个<不同的瞬间(时间轴上的不同点)。当您调用 plusHours(2) 时,结果是另一个 OffsetDateTime,比第一个时间晚 2 小时。

如果您想将 OffsetDateTime转换为另一个偏移量,则不应为其添加小时数。你应该这样做:

OffsetDateTime odtB = OffsetDateTime.parse("2018-03-26T06:00:00Z");
// convert to offset +02:00
odtB = odtB.withOffsetSameInstant(ZoneOffset.ofHours(2));

现在结果是 2018-03-26T08:00+02:00 - 请注意,偏移量从 Z 更改为 +02:00,但两者 (2018-03-26T08 :00+02:002018-03-26T06:00:00Z) 代表同一时刻(时间轴中的同一点)。

如果您使用 isEqual(checks if the dates correspond to the same instant 的方法)比较结果,情况会变得更清楚:

OffsetDateTime odtB = OffsetDateTime.parse("2018-03-26T06:00:00Z");

// add hours
OffsetDateTime twoHoursLater = odtB.plusHours(2);
System.out.println(odtB.isEqual(twoHoursLater)); // false

// convert to offset +02:00
OffsetDateTime sameInstantDifferentOffset = odtB.withOffsetSameInstant(ZoneOffset.ofHours(2));
System.out.println(odtB.isEqual(sameInstantDifferentOffset)); // true
<小时/>

要转换为其他偏移量,例如+05:30,您只需更改所使用的偏移量即可。您可以使用其中之一来代替 ZoneOffset.ofHours(2):

ZoneOffset.ofHoursMinutes(5, 30)
ZoneOffset.of("+05:30")

关于java - 根据java 8中的偏移量转换UTC时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49773155/

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