Analyser ISO horodatage à l'aide de Java 8 java.le temps de l'api (standard edition)

Je vais avoir de la difficulté à obtenir millisecondes à partir de l'époque de la chaîne dans l'exemple. J'ai essayé ce de trois façons différentes à ce jour, et le montre l'exemple de la dernière tentative. Il semble toujours à venir vers le bas pour que le TemporalAccessor ne prend pas en charge ChronoField. Si je pouvais réussir à construire une instance Instant, je pouvais utiliser toEpochMilli().

String dateStr = "2014-08-16T05:03:45-05:00"
TemporalAccessor creationAccessor = DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(dateStr);
Instant creationDate = Instant.from(creationAccessor);

Veuillez donner des réponses concises (ne pas construire un module de formatage à partir de zéro) et n'utiliser que le java 8 distribution standard (je peux le faire avec Joda, mais que vous voulez éviter les dépendances).

Edit: Instant.dans le code ci-dessus lancers: java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: {OffsetSeconds=-18000},ISO resolved to 2014-08-16T05:03:45 of type java.time.format.Parsed

Le code que vous avez posté compile et fonctionne très bien. Quelle version de Java 8 utilisez-vous?

OriginalL'auteur Travis Wellman | 2014-09-09