Java 8 –インスタントをLocalDateTimeに変換
Instant
からLocalDateTime
に変換する方法を示すJava8の例
1. インスタント→LocalDateTime
java.time.LocalDateTime
にはタイムゾーンの概念がなく、ゼロオフセットUTC +0を提供するだけです。
InstantExample1.java
package com.example.date; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneOffset; public class InstantExample1 { public static void main(String[] argv) { // Parse a ISO 8601 Date directly //Instant instant = Instant.parse("2016-08-18T06:17:10.225Z"); Instant instant = Instant.now(); System.out.println("Instant : " + instant); //Convert instant to LocalDateTime, no timezone, add a zero offset / UTC+0 LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneOffset.UTC); System.out.println("LocalDateTime : " + ldt); } }
出力
Instant : 2016-08-18T06:17:10.225Z LocalDateTime : 2016-08-18T06:17:10.225
2. LocalDateTime→Instant
InstantExample2.java
package com.example.date; import java.time.*; public class InstantExample2 { public static void main(String[] argv) { // Hard code a date time LocalDateTime dateTime = LocalDateTime.of(2016, Month.AUGUST, 18, 6, 17, 10); System.out.println("LocalDateTime : " + dateTime); // Convert LocalDateTime to Instant, UTC+0 Instant instant = dateTime.toInstant(ZoneOffset.UTC); System.out.println("Instant : " + instant); } }
出力
Instant : 2016-08-18T06:17:10.225Z LocalDateTime : 2016-08-18T06:17:10.225