UTC로 된 LocalDateTime인 2022-05-18T06:22:57.616Z
를 2022-05-18T15:22:57.616Z
로 변경한다.
import java.time.* import java.time.format.DateTimeFormatter fun LocalDateTime.formatWithUtcToLocal(): String = ZonedDateTime.of(this, ZoneOffset.UTC) .withZoneSameInstant(ZoneId.systemDefault()) .format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"))
하지만 현지 시간과 UTC를 서로 변환해야하는 경우가 생길 수 있으니 이렇게 하는게 더 좋을 것 같다.
import java.time.* import java.time.format.DateTimeFormatter /** * 한국시간을 UTC로 변환 */ val LocalDateTime.toUtc: LocalDateTime get() = ZonedDateTime.of(this, ZoneOffset.ofHours(9)).withZoneSameInstant(ZoneOffset.UTC).toLocalDateTime() /** * UTC를 한국시간으로 변환 */ val LocalDateTime.toKst: LocalDateTime get() = ZonedDateTime.of(this, ZoneOffset.UTC).withZoneSameInstant(ZoneOffset.ofHours(9)).toLocalDateTime() fun LocalDateTime.format(): String = format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"))