Is there any way to convert ZoneId to ZoneOffset in java 8?

前端 未结 7 1218
礼貌的吻别
礼貌的吻别 2020-12-13 05:26

I have an epoch second and a zoneId,by method1.It can be convert to LocalDateTime with system default zoneId,but I don\'t find the way to convert epoch second to LocalDateTi

7条回答
  •  借酒劲吻你
    2020-12-13 05:50

    Here is how you can get ZoneOffset from ZoneId:

    Instant instant = Instant.now(); //can be LocalDateTime
    ZoneId systemZone = ZoneId.systemDefault(); // my timezone
    ZoneOffset currentOffsetForMyZone = systemZone.getRules().getOffset(instant);
    

    NB: ZoneId can have different offset depending on point in time and the history of the particular place. So choosing different Instants would result in different offsets.

    NB2: ZoneId.of() can return a ZoneOffset instead of ZoneId if UTC+3/GMT+2/etc is passed as opposed to a time zone like Africa/Cairo. So if UTC/GMT offsets are passed then historical/geographical/daylight-saving information of the Instant won't be taken into account - you'll simply work with the specified offset.

提交回复
热议问题