IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Cannot format given Object as a Date


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut Cannot format given Object as a Date
    Bonjour,

    J'ai voulu réutiliser une classe Date qui il me semble fonctionnait parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    package util;
     
    import java.util.*;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
     
    public class Date
    {
     
    	static Locale locale = Locale.getDefault();
    	static Date now = new Date();
     
    	static DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
     
    	public static String date()
    	{
    		String dat = dateFormat.format(now);
    		return dat;
    	}
     
    }
    Malheureusement lorsque je l'utilise, j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date
    	at java.text.DateFormat.format(Unknown Source)
    	at java.text.Format.format(Unknown Source)
    	at util.Date.date(Date.java:17)
    	at Main.main(Main.java:25)
    Auriez-vous une petite idée de ce qui cloche ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    On ne fait jamais d'import vers une classe qui porte le même nom que la classe en cours ! (Ni d'une classe du package en cours.) Ça mélange trop les choses. Le plus simple serait de donner un autre nom à ta classe, genre DateStrings.

    La variable now est de type util.Date, c'est-à-dire la classe en cours, alors que tu pensais qu'elle serait java.util.Date, c'est à dire les Dates classiques en Java.

    Par conséquent, dans la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String dat = dateFormat.format(now);
    C'est Format.format(Object) qui est appelé, et non pas DateFormat.format(java.util.Date)

    Sauf que, Format.format() accepte n'importe quel Object dans sa signature, pour d'anciennes raisons qui ont à voir avec l'absence des génériques quand ça a été fait. Mais en pratique il a besoin que l'Object passé soit du bon type, dans le cas d'un DateFormat, que ce soit un java.util.Date. Voilà.

    Bref, renomme ta classe, par exemple en DateStrings, et ça marchera.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut
    Effectivement ce n'était pas très judicieux.

    Merci pour l'aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Besoin]Formation Business Objects
    Par widom dans le forum Autres
    Réponses: 0
    Dernier message: 27/11/2008, 10h55
  2. Formater avec String.Format un nombre ou une date
    Par bubulemaster dans le forum Débuter
    Réponses: 2
    Dernier message: 29/06/2008, 19h00
  3. format saisie de champs type DATE
    Par dohamsg dans le forum Firebird
    Réponses: 1
    Dernier message: 31/08/2007, 09h59
  4. [MySQL] le format idéal pour stocker des dates avec l'heure
    Par Philoulheinz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/02/2007, 21h53
  5. [MySQL] Faire un INSERT d'une date format Francais dans un champ date '0000-00-00' ?
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/11/2006, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo