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