我似乎误解了java.util.Date
的转换和java.time.Instance
。我需要一些遗留的代码,而且这个代码在其API中使用java.util.Date
。从`java.time.Instant`到`java.util.Date`的转换增加了UTC偏移量
当我在Date
API中添加偏移量时,我有些困惑。这是我的理解,Date
是UTC时间(“Date类打算反映协调世界时(UTC)”),但是当我从Instant
创建Date
添加偏移:
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
使用在这种情况下的偏移量。
'Date.from'不使用偏移量。 *打印*日期值时应用偏移量。 – Andreas
有用的文章,了解发生了什么:https://codeblog.jonskeet.uk/2017/04/23/all-about-java-util-date/ – 2017-09-26 11:46:59