Maison  >  Article  >  Java  >  Comment gérer l'exception « Impossible de formater l'objet en tant que date » en Java ?

Comment gérer l'exception « Impossible de formater l'objet en tant que date » en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 19:46:30814parcourir

How to Handle

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn