2016-02-24 12 views
10

Sto provando a convertire una stringa in un istantaneo. Mi puoi aiutare?Indicatore di data stringa stringa su tiri istantanei Campo non supportato: InstantSeconds

ottengo seguente eccezione:

Causato da: java.time.temporal.UnsupportedTemporalTypeException: campo non supportato: InstantSeconds a java.time.format.Parsed.getLong (Parsed.java:203) a java.time.Instant.from (Instant.java:373)

mio codice è fondamentalmente come questo

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

Sto usando Java 8 Update 72.

+5

Il tuo primo input non è un istante. Il fuso orario manca. –

+0

Ottengo questo errore cercando di utilizzare DateTimeFormatter.ofLocalizedDateTime costruttore di 2-arg, di cui sono in grado di trovare 0 esempi su Internet. Non mi piace FormatStyle.SHORT passato come secondo parametro timeFormat al metodo. – djangofan

risposta

12

Ecco come ottenere un Instant con il fuso orario predefinito. La tua stringa non può essere analizzata come istantanea perché manca il fuso orario. Quindi puoi sempre ottenere quello predefinito

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

BTW, di recente ho avuto l'obbligo di analizzare una stringa data senza conoscere il formato esatto in anticipo, in pratica cerco di analizzare qualsiasi stringa che rappresenta una data valida. Così ho scritto un articolo su come ho risolto questo problema. Ecco il link: https://www.linkedin.com/pulse/java-8-javatime-package-parsing-any-string-date-michael-gantman?trk=pulse_spock-articles –