从`java.time.Instant`转换为`java.util.Date`增加UTC偏移

延斯:

我似乎误解java.util.Date从和的转换java.time.Instance我有一些遗留的代码,我需要与ineract,这代码使用java.util.Date它的API中。

当偏移量在加入我略有困惑DateAPI。这是我的理解Date是UTC时间(“Date类打算反映协调世界时(UTC)”),但是当我创建一个DateInstant添加的偏移:

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或者Instant两者都不是具体到一个时区。所不同的是,当你打印出来。

Instant.toString() 版画在UTC时区ISO-8601表示。

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

这就是为什么你看到其中的差别。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将java.util.Date转换为Java8 java.time.YearMonth

Java8将java.util.Date转换为java.time.ZonedDateTime

将java.util.Date转换为什么“ java.time”类型?

将java.util.Date转换为java.time.LocalDate

将java.time.LocalDate转换为java.util.Date类型

SQLException:无法使用休眠将java.util.Date强制转换为java.sql.Time

vaadin8 DateField:无法将java.time.LocalDate转换为java.util.Date

使用ZoneId.systemDefault()将java.util.Date转换为java.time.LocalDateTime

如何将Joda-Time DateTime转换为java.util.Date,反之亦然?

从java.util.date转换为JodaTime

将java.sql.Date和java.util.Date转换为org.joda.time.LocalDate

差异将java.util.Date和java.time.Instant之间古老的日期时,

java.lang.ClassCastException: java.util.LinkedHashMap 不能转换为 java.time.LocalDateTime

将DStream [java.util.Date]转换为DStream [String]

将 ZonedDateTime 转换为 java.util.Date

在Java中将JSON对象转换为util.Date

将java.util.Date转换为String

将String转换为java.util.Date

将字符串转换为java.util.date

是否可以将java.util.Date()转换为int

将字符串转换为java.util.date

在java.time API和java.util.Date之间进行转换

在java.time.LocalDateTime和java.util.Date之间进行转换

从Joda-Time DateTime获取java.util.Date

java.util.Date和Joda Time API之间的区别

爪哇 - 转换java.time.Instant到的java.sql.Timestamp无偏移区

在Java中使用不同格式将java.util.Date转换为java.util.Date

将java.sql.Date转换为java.util.Date

如何将java.util.Date转换为java.sql.Date?