Maison  >  Article  >  Java  >  Comment analyser les dates ISO 8601 avec le littéral « Z » à l'aide de SimpleDateFormat ?

Comment analyser les dates ISO 8601 avec le littéral « Z » à l'aide de SimpleDateFormat ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 05:57:02345parcourir

How to Parse ISO 8601 Dates with

Analyse des dates ISO 8601 avec SimpleDateFormat et le littéral 'Z'

Problème :

Tentative pour analyser une chaîne de date ISO 8601 contenant le littéral de fuseau horaire "Z" l'utilisation de la classe SimpleDateFormat avec différents modèles ne parvient pas à renvoyer l'heure UTC correcte. Plus précisément, la date "2010-04-05T17:16:00Z" est analysée comme "Mon Apr 05 17:16:00 EDT 2010", malgré le littéral "Z" indiquant UTC.

Solution :

La classe SimpleDateFormat est incapable de gérer les horodatages en ISO Format 8601 par défaut. Cependant, dans Java 7, un nouveau modèle a été introduit pour gérer spécifiquement cette situation :

yyyy-MM-dd'T'HH:mm:ssX

Ce modèle attend le suffixe de fuseau horaire "X", qui peut représenter un littéral "Z" pour indiquer UTC. Lorsque vous utilisez ce modèle, SimpleDateFormat analyse correctement la date en son équivalent UTC.

Analyseur de date alternatif :

Si SimpleDateFormat ne répond pas à vos besoins, vous pouvez également envisager d'utiliser bibliothèques alternatives d'analyse de dates telles que Joda-Time ou ThreeTen-Backport, qui prennent mieux en charge les dates et le fuseau horaire ISO 8601 littéraux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn