SIMPLEDATEFORMAT Analyse de l'analyse avec 'z' littéral
Lorsque vous tentez de analyser une date au format ISO 8601 à l'aide de SimpledateFormat, il peut échouer correctement le point de référence «z», qui dénote UTC comme point de référence préféré. Par exemple, l'analyse de la chaîne "2010-04-05T17: 16: 00Z" en utilisant le modèle "Yyyy-mm-d't'hh: mm: ss" entraînera une heure locale incorrecte.
Les modèles traditionnels "Yyyy-mm-dd't'hh: mm: ssz" et "yyyym-mmd't ' insuffisant pour l'analyse des dates avec le «z» littéral. Ce comportement peut sembler contre-intuitif car le littéral 'z' indique explicitement UTC.
Solution
Avant Java 7, analysant les dates avec l'objet «z» littéral requise explicitement le fuseau horaire 7 sur l'objet simpletateformat. Cependant, dans Java 7 et au-dessus, le modèle "Yyyy-mm-d't'hh: mm: ssx" peut être utilisé pour analyser correctement et appliquer le suffixe de fuseau horaire UTC. SimpledateFormat ("yyyy-mm-d't'hh: mm: ssx"); Date Date = SDF.Parse ("2010-04-05T17: 16: 00Z");
Cela analysera correctement la date en tant qu'UTC. API TIME. Le code suivant démontre en utilisant java.time pour analyser la date:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX");
Date date = sdf.parse("2010-04-05T17:16:00Z");
Cette approche élimine le besoin de modèles complexes ou de paramètre de fuseau horaire explicite, car Java.time gère nativement les fuseaux horaires UTC.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3