util nueva fechas example ejemplo conociendo java date datetime java-8 java-time

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());