【Java】ZonedDateTimeとLocalDateTimeの相互変換について

Created 2022年11月9日10:26
Updated 2022年11月9日10:26
Categories Java

TL;DR

// ZonedDateTime → LocalDateTime
LocalDateTime converted = zonedDateTime.toLocalDateTime();

// LocalDateTime → ZonedDateTime
ZonedDateTime converted = localDateTime.atZone(ZoneId.of("Asia/Tokyo"));

タイムゾーンについて

ZonedDateTimeがタイムゾーンを保持するのに対して、LocalDateTimeにタイムゾーンの概念はありません。時刻をそのまま保持するだけなので、中身がUTCなのかJSTなのか分からないことになります。

そのため、ZonedDateTimeからLocalDateTimeに変換してまたZonedDateTimeに戻すような場合は、タイムゾーンを合わせてあげる必要があります。

コメントを投稿

コメント