Monday, June 5, 2017

Java 8 Date and Time API: How to Convert Date to Java 8 Date and Time


In this tutorial, you will learn:
  • How to convert Date to Instant
  • How to convert Date to LocalDate
  • How to convert Date to LocalTime
  • How to convert Date to LocalDateTime
  • How to convert Date to ZonedDateTime
Example
package com.melody.datetime;

import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;

public class ConvertDateToJava8Date {

 public static void main(String[] args) {
  // Date has no timezone
  Date date = new Date();

  // I did not use toString() because it will automatically
  // format the date with the system default timezone
  System.out.println("Date: " + date.toGMTString());

  // Convert Date to Instant.
  // Instant is the equivalent of Date in Java 8 Date API.
  Instant instant = date.toInstant();
  System.out.println("Instant: " + instant);

  ZoneId defaultTimeZone = ZoneId.systemDefault();

  // Convert Instant to LocalDate (using the system default timezone)
  LocalDate localDate = instant.atZone(defaultTimeZone).toLocalDate();
  System.out.println("LocalDate: " + localDate);

  // Convert Instant to LocalTime (using the system default timezone)
  LocalTime localTime = instant.atZone(defaultTimeZone).toLocalTime();
  System.out.println("LocalTime: " + localTime);

  // Convert Instant to LocalDateTime (using the system default timezone)
  LocalDateTime localDateTime = instant.atZone(defaultTimeZone).toLocalDateTime();
  System.out.println("LocalDateTime: " + localDateTime);

  // Convert Instant to ZonedDateTime (using the system default timezone)
  ZonedDateTime zonedDateTime = instant.atZone(defaultTimeZone);
  System.out.println("ZonedDateTime: " + zonedDateTime);
 }
}
Output

Date: 5 Jun 2017 09:01:52 GMT
Instant: 2017-06-05T09:01:52.527Z
LocalDate: 2017-06-05
LocalTime: 17:01:52.527
LocalDateTime: 2017-06-05T17:01:52.527
ZonedDateTime: 2017-06-05T17:01:52.527+08:00[Asia/Shanghai]


No comments:

Post a Comment