我似乎誤解了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