Confusion dans SimpleDateFormat("aaaa-MM-jj'T'HH:mm:ss'Z'") Interprétation du fuseau horaire
Dans java, SimpleDateFormat permet aux utilisateurs d'analyser et de formater les dates en utilisant un modèle spécifié. Lorsque vous utilisez le modèle « aaaa-MM-jj'T'HH:mm:ss'Z' », on s'attend à ce que le « Z » représente le fuseau horaire GMT/UTC. Cependant, des inquiétudes ont été soulevées quant au fait que la date résultante indique le fuseau horaire IST au lieu du fuseau horaire GMT attendu.
Explication
Le caractère « Z » dans le motif signifie en effet le fuseau horaire GMT/UTC. Cependant, il est crucial de noter que le simple ajout du « Z » à la chaîne date/heure ne modifie pas la valeur comme par magie. Le fuseau horaire doit être explicitement défini pour l'objet SimpleDateFormat à l'aide de la méthode setTimeZone.
Résoudre le problème
Pour garantir que la date de sortie reflète correctement le fuseau horaire GMT/UTC, il faut définir explicitement le fuseau horaire sur GMT en utilisant la ligne de code suivante :
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
En définissant le fuseau horaire, l'objet SimpleDateFormat interprétera correctement le « Z » comme GMT/UTC et affichera la date dans le fuseau horaire souhaité.
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!