2017-10-19 6 views

Répondre

0

trouvé la solution

Instant.from(DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(dateStr)) 
+1

Etes-vous sûr que cela analyse la chaîne "Wed Aug 09 17:11:53 +0000 2017'? –

+0

Je reçois 'java.time.format.DateTimeParseException: Text 'Wed Aug 09 17:11:53 +0000 2017' n'a pas pu être analysé à l'index 0'. –

1

Suivez les documentation of DateTimeFormatter:

DateTimeFormatter dtf 
      = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss X uuuu", Locale.ROOT); 
    Instant asInstant = OffsetDateTime.parse(dateStr, dtf).toInstant(); 

Avec votre exemple chaîne le résultat est un Instant de

2017-08-09T17:11:53Z 

Il semble du Twitter documentation que décalage ne toujours être +0000. En fonction de votre degré de confiance, vous pouvez utiliser le x ou le capital Z au lieu du capital X dans le modèle de format. Si vous souhaitez une validation plus stricte, vous pouvez également vérifier que .getOffset().equals(ZoneOffset.UTC)OffsetDateTime donne la valeur true avant de convertir en Instant.