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

Langage Java Discussion :

probleme pour parser une date


Sujet :

Langage Java

  1. #1
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut probleme pour parser une date
    Salut je sauvegarde une date dans un fichier xml grace a un jFormattedTextField, dans le fichier la date est de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sun Mar 27 00:00:00 CET 2011
    J'aimerais recuperer ce string est en faire un objet date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                       SimpleDateFormat sdf=new SimpleDateFormat("E MMM d HH:mm:ss z yyyy");
                        String dateString=courant.getChild("date").getText(); // dela forme Sun Mar 27 00:00:00 CET 2011
                        this.date=new Date();
                        try {
                            date = sdf.parse(dateString);
                            System.out.println(date.toString());
                        } catch (ParseException ex) {
                            Logger.getLogger(NewJPanel11.class.getName()).log(Level.SEVERE, null, ex);
                        }
    La le programme plante en m'ennonçant :
    GRAVE: null
    java.text.ParseException: Unparseable date: "Sun Mar 27 00:00:00 CET 2011"
    at java.text.DateFormat.parse(DateFormat.java:354)
    Merci de votre aide !

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Il faut que tu mette comme format, dans ton SimpleDateFormat à la lecture exactement la même chaine que celle que tu a mis à l'écriture.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Pas impossible que ce soit un clash de Locale : Sun c'est pour Sunday, de l'anglais. Chez nous on appelle ça Dimanche.

    Par défaut, un SimpleDateFormat aura donc plutôt tendance à écrire Dim et à ne savoir lire que Dim. Sun, connaît pas.
    Il est possible que tu te sois débrouillé d'une manière ou d'une autre à avoir une Locale par défaut anglaise à l'écriture, et française à la Lecture. (Par exemple parce que ce seraient deux programmes qui tournent sur deux machines ou environnements différents.)

    Pour forcer la localisation américaine,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sdf.setLocale(Locale.US);

  4. #4
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut
    Finalement je me suis débrouillé autrement, j'enregistre ma date avec un mask (##/##/####)
    puis récupère la date sous cette forme que je parse plus facilement.
    Merci pour vos réponses !

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

Discussions similaires

  1. probleme avec find pour chercher une date
    Par Patnel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/10/2011, 07h41
  2. JSpinner, probleme pour incrémenter une Date.
    Par jeanlouis_lecodeur dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 03/12/2010, 14h28
  3. Réponses: 9
    Dernier message: 08/08/2009, 23h32
  4. Probleme pour parser une String en Date
    Par DrTank dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2007, 19h19
  5. [Ajax] probleme pour parser une reponse
    Par zola dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 04/05/2006, 17h35

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