Impossible de formater un objet en tant que date en Java
En Java, lorsque vous essayez de formater un objet donné en tant que date à l'aide de la méthode DateFormat.format , vous pouvez rencontrer l'exception suivante :
java.lang.IllegalArgumentException: Cannot format given Object as a Date
Cette erreur se produit lorsque l'objet que vous tentez de formater n'est pas une instance de Date. Dans votre cas, vous essayez de formater une chaîne ("2012-11-17T00:00:00.000-05:00") en tant que date à l'aide d'une instance SimpleDateFormat configurée avec le modèle "mm/aaaa".
Solution
Pour résoudre ce problème, vous devez utiliser deux objets SimpleDateFormat : un pour analyser la chaîne d'entrée dans une instance de Date et un autre pour formater la date résultante dans le format souhaité :
<code class="java">import java.text.SimpleDateFormat; import java.util.Date; public class DateParser { public static void main(String args[]) { String monthYear = null; // Create input format to parse from "yyy-MM-dd'T'HH:mm:ss.SSSX" SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX"); // Create output format to format to "MM/yyyy" SimpleDateFormat outputFormat = new SimpleDateFormat("MM/yyyy"); String inputText = "2012-11-17T00:00:00.000-05:00"; try { // Parse the input string into a Date object Date date = inputFormat.parse(inputText); // Format the parsed Date into the desired format monthYear = outputFormat.format(date); System.out.println(monthYear); } catch (ParseException e) { System.err.println("Input string is not a valid date: " + e.getMessage()); } } }</code>
Cette approche sépare les opérations d'analyse et de formatage, garantissant que l'entrée est correctement convertie en une instance de Date avant de tenter de la formater à l'aide du modèle spécifié.
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!