Question :
Comment une date au format "2012- 11-17T00:00:00.000-05:00" être converti en "mm/aaaa" en Java ?
Erreur rencontrée :
Lors de la tentative d'utilisation de DateFormat. format directement sur la représentation sous forme de chaîne de la date, une exception est levée :
java.lang.IllegalArgumentException: Cannot format given Object as a Date
Solution :
La clé est de reconnaître que DateFormat.format fonctionne spécifiquement avec Valeurs de date, pas de représentations sous forme de chaîne de dates. Par conséquent, l'approche en deux étapes suivante doit être utilisée :
Analyser la chaîne d'entrée dans un objet Date :
<code class="java">DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.US); Date date = inputFormat.parse(inputText);</code>
Formatez l'objet Date dans le format de sortie souhaité :
<code class="java">DateFormat outputFormat = new SimpleDateFormat("MM/yyyy", Locale.US); String outputText = outputFormat.format(date);</code>
Exemple d'utilisation :
<code class="java">String inputText = "2012-11-17T00:00:00.000-05:00"; String outputText = new SimpleDateFormat("MM/yyyy", Locale.US).format(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.US).parse(inputText));</code>
En suivant ces étapes, la chaîne de date peut être convertie au format « mm/aaaa » souhaité sans rencontrer l'exception Impossible de formater l'objet donné en tant que date.
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!