How to get default ZoneOffset in java8?

前端 未结 2 1805
小鲜肉
小鲜肉 2020-12-12 14:21

With java8 we know use ZoneId.default() can get system default ZoneId, but how to get default ZoneOffset?

I see that a Z

2条回答
  •  借酒劲吻你
    2020-12-12 14:46

    Depending on your objective, you may be able to bypass ZoneOffset entirely.

    Assuming you just need a ZoneOffset for e.g. LocalDateTime.ofEpochSecond(), you may replace

    ZoneOffset offset = OffsetDateTime.now().getOffset();
    LocalDateTime dt1 = LocalDateTime.ofEpochSecond(seconds, 0, offset);
    

    with

    LocalDateTime dt2 = LocalDateTime.ofInstant(
        Instant.ofEpochSecond(seconds), 
        ZoneId.systemDefault());
    

    where dt1.equals(dt2) is true.

提交回复
热议问题