package ar.com.javacuriosities.time;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
/*
* La clase java.util.Date contiene información sobre Date, Time y Time zone entonces a la hora
* de hacer la conversion a la nueva API debemos ver que información queremos usar.
*
* La clase Date fue extendida con un método "toInstant" para realizar estas conversiones, además
* se le agrego el método from para las conversiones en sentido inverso
*/
public class Lesson11Conversion {
public static void main(String[] args) {
Date oldDate = new Date();
System.out.println("***java.util.Date to java.time.LocalDateTime***");
LocalDateTime localDateTime = LocalDateTime.ofInstant(oldDate.toInstant(), ZoneId.systemDefault());
System.out.println("Old Date: " + oldDate);
System.out.println("New Local Date Time: " + localDateTime);
System.out.println("***java.util.Date to java.time.LocalDate***");
LocalDate localDate = LocalDateTime.ofInstant(oldDate.toInstant(), ZoneId.systemDefault()).toLocalDate();
System.out.println("Old Date: " + oldDate);
System.out.println("New Local Date: " + localDate);
System.out.println("***java.time.LocalDateTime to java.util.Date***");
LocalDateTime localDateTimeToConvert = LocalDateTime.now();
oldDate = Date.from(localDateTimeToConvert.atZone(ZoneId.systemDefault()).toInstant());
System.out.println("Old Date: " + oldDate);
System.out.println("New Local Date Time: " + localDateTimeToConvert);
System.out.println("***java.time.LocalDate to java.util.Date***");
LocalDate localDateToConvert = LocalDate.now();
oldDate = Date.from(localDateToConvert.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
System.out.println("Old Date: " + oldDate);
System.out.println("New Local Date: " + localDateToConvert);
}
}