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!