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 :

[Date] Conversion String --> date, problème de format


Sujet :

Collection et Stream Java

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Points : 227
    Points
    227
    Par défaut [Date] Conversion String --> date, problème de format
    Bonjour a tous,

    j'ai une date sous forme de string que je veux parser en objet Date.
    Cette date provient d'un retour XML d'une commande svn.

    Voici un exemple de date:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2011-12-15T15:13:54.400537Z

    J'ai essayé de la parser avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String date="2011-12-15T15:13:54.400537Z";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddGHH:mm:ss.z");
     Date d=sdf.parse(date);
    Malheureusement le format ne semble pas correct.

    Savez-vous quel format je dois utilisé pour parser cette date ?

    Je vous remercie d'avance pour votre aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Pourquoi avoir mis 'G' et pas 'T' comme séparation dans ton format ?

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Points : 227
    Points
    227
    Par défaut
    Car si j'utilise ce format :
    j'ai une jolie exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.IllegalArgumentException: Illegal pattern character 'T'

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Ce code est correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static void main(String[] args) {
     
    		 try {
    			 String date="2011-12-15T15:13:54.400Z";
    			 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    			 Date d=sdf.parse(date);
    			 System.out.println("Result=" + d);
    		} catch (ParseException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    Result=Thu Dec 15 15:13:54 CET 2011
    Mais tu ne pourras pas avoir une précision à la micro seconde.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Points : 227
    Points
    227
    Par défaut
    Oki, c'est nickel
    Merci pour ton aide

    Comment je dois faire pour savoir quoi mettre entre quote ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Entre quotes tu mets ce que tu veux qui soit considéré comme du texte à ne pas interpréter.

    Tout est expliqué dans la doc de SimpleDateFormat.

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Points : 227
    Points
    227
    Par défaut
    Oki, je pensai que le T était une information de la date.
    Encore merci

  8. #8
    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
    Attention, dans la norme ISO le Z indique que c'est une date en GMT.

    Or là, on le lit comme si c'était une date dans la time zone locale.

    Il faudrait faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
    pour que ce soit correct.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Points : 227
    Points
    227
    Par défaut
    Oki, je prend note

    Encore merci pour ton aide

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

Discussions similaires

  1. conversion string en date gestion du format date US/FR
    Par blacklolou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/06/2012, 11h19
  2. problème conversion string en date - h2
    Par lequebecois79 dans le forum Autres SGBD
    Réponses: 0
    Dernier message: 16/03/2011, 12h38
  3. Problème de conversion String to Date
    Par Nathan_56 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 06/11/2009, 16h39
  4. Réponses: 8
    Dernier message: 05/02/2005, 16h38
  5. conversion String en Date (parse trop permissif)
    Par ciloulou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 13/09/2004, 18h36

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