java.temps.format.DateTimeParseException: Texte n'a pas pu être analysé au niveau de l'index 21
- Je obtenir la valeur datetime comme
created_at '2012-02-22T02:06:58.147Z'
Read-only. The time at which this task was created.
Qui est donné par les Asanas API
Je suis en utilisant Java 8
pour analyser la date en suivant
import java.time.*;
import java.time.format.*;
public class Times {
public static void main(String[] args) {
final String dateTime = "2012-02-22T02:06:58.147Z";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'hh:mm:ss.SX");
final ZonedDateTime parsed = ZonedDateTime.parse(dateTime, formatter);
System.out.println(parsed);
}
}
Lorsque je l'exécute, j'obtiens l'erreur suivante
Exception in thread "main" java.time.format.DateTimeParseException: Text '2012-02-22T02:06:58.147Z' could not be parsed at index 21
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1947)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1849)
at java.time.ZonedDateTime.parse(ZonedDateTime.java:597)
at Times.main(Times.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Ce n'est pas ici?
Vous souhaiterez peut-être modifier "aaaa-M-d' gérer à un seul chiffre les mois et les jours.
OriginalL'auteur daydreamer | 2016-03-09
Vous devez vous connecter pour publier un commentaire.
La valeur par défaut de l'analyseur peut analyser votre entrée. Si vous n'avez pas besoin d'une mise en forme personnalisée et
fonctionne comme prévu.
OriginalL'auteur assylias
Si votre entrée, il a un fuseau horaire de "zulu" ("Z" = UTC), alors vous pouvez utiliser
DateTimeFormatter.ISO_INSTANT
(implicitement):Si fuseau horaire varie et a la forme de "+01:00" ou "+01:00:00" (lorsqu'il n'est pas un "Z"), alors vous pouvez utiliser
DateTimeFormatter.ISO_OFFSET_DATE_TIME
:Si ce n'est pas le cas, vous pouvez construire une
DateTimeFormatter
de la même manière queDateTimeFormatter.ISO_OFFSET_DATE_TIME
est construit.Votre modèle actuel a plusieurs problèmes:
ResolverStyle.STRICT
);yyyy
au lieu deuuuu
(yyyy
ne fonctionnera pas en mode strict);hh
au lieu de 24 heuresHH
;S
pour les fractions de secondes, mais l'entrée a trois.OriginalL'auteur Roman
D'origine de votre problème a été mal symbole en forme de "h" qui est pour l'heure de l'horloge (plage de 1 à 12). Dans ce cas, l'am-pm-l'information est manquante. Mieux, utiliser le symbole en forme de "H" à la place (heure de la journée dans la gamme de 0 à 23). La tendance devrait plutôt ressembler à:
uuuu-MM-jj PAS'HH:mm:ss.SSSX (meilleur modèle convient également pour le mode strict)
OriginalL'auteur Meno Hochschild
La suite travaillé pour moi
et m'a donné de sortie comme
OriginalL'auteur daydreamer