nueva - java util date
Java8 java.util.Date conversión a java.time.ZonedDateTime (2)
Para obtener un ZonedDateTime desde una fecha, puede usar:
calculateFromDate.toInstant().atZone(ZoneId.systemDefault())
Luego puede llamar al método toLocalDate si necesita un LocalDate. Ver también: Convertir java.util.Date a java.time.LocalDate
Recibo la siguiente excepción al intentar convertir java.util.Date a java.time.LocalDate .
java.time.DateTimeException: Unable to obtain ZonedDateTime from TemporalAccessor: 2014-08-19T05:28:16.768Z of type java.time.Instant
El código es el siguiente:
public static Date getNearestQuarterStartDate(Date calculateFromDate){
int[] quaterStartMonths={1,4,7,10};
Date startDate=null;
ZonedDateTime d=ZonedDateTime.from(calculateFromDate.toInstant());
int frmDateMonth=d.getMonth().getValue();
¿Hay algún problema en la forma en que estoy usando la clase ZonedDateTime ?
Según la documentación, esto debería convertir un objeto java.util.Date a ZonedDateTime . El formato de fecha anterior es la fecha estándar?
¿Debo retroceder en el tiempo de Joda?
Si alguien pudiera ofrecer alguna sugerencia, sería genial.
Para transformar un Instant a un ZonedDateTime , ZonedDateTime ofrece el método ZonedDateTime.ofInstant(Instant, ZoneId) . Asi que
Por lo tanto, suponiendo que desee un ZonedDateTime en la zona horaria predeterminada, su código debe ser
ZonedDateTime d = ZonedDateTime.ofInstant(calculateFromDate.toInstant(),
ZoneId.systemDefault());