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