J'ai écrit une méthode pour analyser une date. Quand je passe la date suivante comme argument Qu'est-ce qui pourrait être faux avec la logique? p> 2019-03-05 06:15:00 code>, je reçois un
java.text.parsexception: date imparable: "2019-03 -05 06:15:00 " code>.
4 Réponses :
Vous essayez d'analyser string 2019-03-05 06:15:00 Code> Utilisation du modèle
AAAA-MM-DD'T'HH: mm'z ' code> que évidemment ne correspond pas. P>
J'ai essayé de passer la chaîne suivante: 2013-06-19t12: 00-05: 00 code> et d'obtenir toujours un
java.text.parsexception: date imparable: "2013-06-19T12 : 00-05: 00 " code>
@samba toujours la chaîne que vous essayez d'analyser ne correspond pas au modèle, vérifiez la partie temporelle
Essayez 2013-06-19T12: 00Z code>, c'est ce qui devrait probablement fonctionner.
Définir "travail". Cela ne jettera pas une exception, mais donnera un résultat incorrect (sur la plupart des JVM).
Modifiez la méthode pour suivre
2019-03-05T06:15Z
J'ai besoin de quitter la méthode comme. Au lieu de cela, je veux comprendre quel genre de chaîne devrais-je passer
Pass 2019-03-05T06: 15Z
Merci! Le problème était que j'ai passé la chaîne de date incompatible avec mon modèle
@samba tort! Le z est le décalage de la zone! Pas seulement une lettre. Votre motif ne reflète pas ce que vous voulez faire.
Le de sorte que votre tes modèles de toute façon, évitez d'utiliser z code> représente le décalage de la zone. Par documentation
devrait être, par exemple p>
SimpleDateformat code>, utilisez
DateTimeformatter code>. partie de l'API de la nouvelle fois pour Java 8. P>
final TemporalAccessor parsed = DateTimeFormatter.ISO_DATE_TIME.parse(val);
@ MS90 ne le savait pas. Merci. Eh bien, espérons que OP vient d'Allemagne alors;)
Eh bien, rien ne va mal avec votre code, à l'exception de ce SS et changez aussi la commande.
S Deuxième numéro de la minute 55 P>
S Fraction de deuxième fraction 978 P> blockQuote>
xxx pré> p>
Je présume que T est pour la balise (jour) et z est pour Zeit (heure)?
Non, @ ms90. T est pour le temps (désignote où commence l'heure de la journée) et Z est le nom de l'armée du «fuseau horaire zoulou» ou de l'UTC ou de l'UTC offset zéro.
La réponse est ici: ISO 8601 sur Wikipedia ( z ici et
Je vous recommande d'utiliser
SimpleDateFormat code>. Cette classe est notoirement gênante et longtemps obsolète. Au lieu de cela, utilisez
offsetDateTime code> et
DateTimeformatter code>, à partir de Java.time, l'API et l'heure de l'heure de Java modernes .
N'utilisez pas non plus
'z' code> dans votre chaîne de modèle de format pour analyser ou imprimer
z code> comme littéral.
z code> (prononcé zulu i>) signifie UTC et doit être analysé ou imprimé en tant que tel, ou vous aurez des résultats erronés.
Qu'est-ce que tu es vraiment i> essayer d'obtenir? Il semble que vous produisiez de manière dynamique une expression SQL ou similaire. Pour la grande majorité des fins qui seraient plus compliquées que ce dont vous avez vraiment besoin. Voir XY Problème .