gpt4 book ai didi

java - 从 `java.time.Instant` 到 `java.util.Date` 的转换添加了 UTC 偏移量

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:18 25 4
gpt4 key购买 nike

我似乎误解了 java.util.Datejava.time.Instance 之间的转换。我有一些遗留代码需要与之交互,而这段代码在其 API 中使用了 java.util.Date

当在 Date API 中添加偏移量时,我有点困惑。据我了解,Date 是 UTC 时间(“Date 类旨在反射(reflect)协调世界时 (UTC)”),但是当我从Instant 添加偏移量:

public class TestDateInstant {
@Test
public void instantdate() {
Instant i = Instant.now();
System.out.println(i);
Date d = Date.from(i);
System.out.println(d);

assertThat(i, equalTo(d.toInstant()));
}
}

断言成立,但控制台上的输出是:

2017-09-26T08:24:40.858Z 
Tue Sep 26 10:24:40 CEST 2017

我想知道为什么 Date.from 在这种情况下使用偏移量。

最佳答案

DateInstant 均不特定于时区。区别在于打印它们的时间。

Instant.toString() 以 UTC 时区的 ISO-8601 表示形式打印。

Date.toString() 以您当前的时区打印它。

这就是您看到差异的原因。

关于java - 从 `java.time.Instant` 到 `java.util.Date` 的转换添加了 UTC 偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46421736/

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