MatMat:
Tengo un objeto Date que contiene una fecha (la fecha no corriente) y necesito especificar alguna manera que esta fecha es la hora UTC y después convertirlo a "Europa / París", que es +1 hora.
public static LocalDateTime toLocalDateTime(Date date){
return ZonedDateTime.of(LocalDateTime.ofInstant(date.toInstant(), ZoneOffset.UTC), ZoneId.of("Europe/Paris")).toLocalDateTime();
}
Dada una fecha de "08/11/2018 15:00:00" Esto convierte la fecha en "08/11/2018 14:00:00". Lo necesito convertir de UTC a Europa / París - no al revés.
Charles Dowbecki:
Se podría utilizar ZonedDateTime.withZoneSameInstant()
el método de pasar de UTC a la hora de París:
Date date = new Date();
ZonedDateTime utc = date.toInstant().atZone(ZoneOffset.UTC);
ZonedDateTime paris = utc.withZoneSameInstant(ZoneId.of("Europe/Paris"));
System.out.println(utc);
System.out.println(paris);
System.out.println(paris.toLocalDateTime());
que imprime:
2018-11-08T10:25:18.223Z
2018-11-08T11:25:18.223+01:00[Europe/Paris]
2018-11-08T11:25:18.223