Maison > Article > base de données > Pourquoi SimpleDateFormat.parse génère-t-il un format de sortie inattendu ?
SimpleDateFormatter.parse donne un format de sortie inattendu
Dans votre code, vous avez rencontré une divergence entre SimpleDateFormatter.format et SimpleDateFormatter.parse. différents formats de sortie. Examinons les raisons de ce comportement.
La classe SimpleDateFormatter nécessite à la fois le formatage de la date et les informations de fuseau horaire pour manipuler correctement les dates. Dans votre cas, le format que vous avez spécifié est "jj/MM/aaaa hh:mm:ss a" (par exemple, 23/05/2018 15:30:00). Cependant, lorsque vous analysez la date formatée en utilisant le même format, elle reconnaît le fuseau horaire IST (Indian Standard Time) en raison du « a » dans le format, qui représente la désignation AM/PM.
Ceci signifie que SimpleDateFormatter.parse interprète la date avec le fuseau horaire IST en place, ce qui donne l'horodatage que vous avez observé : "Mercredi 23 mai 15:30:00 IST 2018." Ce format est différent de celui que vous avez spécifié initialement car il inclut les informations de fuseau horaire.
Pour résoudre ce problème, envisagez les solutions suivantes :
En résumé, l'écart entre SimpleDateFormatter.format et SimpleDateFormatter.parse est dû à des considérations de fuseau horaire. En tirant parti de l'API java.time ou en gérant explicitement les fuseaux horaires dans SimpleDateFormatter, vous pouvez éviter ces incohérences de formatage et garantir une gestion cohérente des dates.
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!