instant from formatear fecha create convertir java parsing timestamp java-8

java - from - Campo de tiempo de cadena de análisis a lanzamientos instantáneos Campo no compatible: InstantSeconds



string to instant java 8 (2)

Aquí es cómo obtener un Instant con la zona horaria predeterminada. Su cadena no se puede analizar directamente a Instant porque falta la zona horaria. Así que siempre puedes obtener el predeterminado

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String timestamp = "2016-02-16 11:00:02"; TemporalAccessor temporalAccessor = formatter.parse(timestamp); LocalDateTime localDateTime = LocalDateTime.from(temporalAccessor); ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, ZoneId.systemDefault()); Instant result = Instant.from(zonedDateTime);

Estoy tratando de convertir una cadena en un instante. ¿Me puedes ayudar?

Me sale la siguiente excepción:

Causado por: java.time.temporal.UnsupportedTemporalTypeException: Campo no compatible: InstantSeconds en java.time.format.Parsed.getLong (Parsed.java:203) en java.time.Instant.from (Instant.java:373)

Mi código se ve básicamente así

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String timestamp = "2016-02-16 11:00:02"; TemporalAccessor temporalAccessor = formatter.parse(timestamp); Instant result = Instant.from(temporalAccessor);

Estoy usando Java 8 Update 72.


Un método más simple es agregar la zona horaria predeterminada al objeto del formateador al declararlo

final DateTimeFormatter formatter = DateTimeFormatter .ofPattern("yyyy-MM-dd HH:mm:ss") .withZone(ZoneId.systemDefault()); Instant result = Instant.from(formatter.parse(timestamp));