Java 8 timezone conversions

前端 未结 2 1038
天命终不由人
天命终不由人 2020-11-28 14:50

In Java 8, I want to convert a datetime from UTC to ACST (UTC+9:30).

input -> 2014-09-14T17:00:00+00:00

output-> 2014-09-15 02:30:00

String i         


        
2条回答
  •  暗喜
    暗喜 (楼主)
    2020-11-28 15:16

    Slight improvement on the above. Avoids hardcoding offset. Also, takes care of daylight savings.

    public static LocalDateTime convertTo(LocalDateTime dateTime, String timeZone) {
        ZoneId zone = ZoneId.of(timeZone);
        ZonedDateTime zdt = dateTime.atZone(zone);
        ZoneOffset offset = zdt.getOffset();
        return dateTime.plus(offset.getTotalSeconds(), ChronoUnit.SECONDS);
    }
    

提交回复
热议问题