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 :

formatage du date en java


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut formatage du date en java
    Bojour , je veux transformer un string qui contient une date du format 15 NOV 2011 en une autre format ,j'ai taper le bout de code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy");
    ParsePosition pos = new ParsePosition(0);
    Date imagedate = formatter.parse(15 NOV 2011);
    SimpleDateFormat  simpleFormat = new SimpleDateFormat("dd/MM/yyyy");
    System.out.println(simpleFormat.format(imagedate ));
    mais imagedate est a null ,pouvez vous m'aider a trouver comment récupérer la date de ce string ??

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par youzigh Voir le message
    mais imagedate est a null ,pouvez vous m'aider a trouver comment récupérer la date de ce string ??
    Je ne vois pas comment imagedate pourrait être null avec le code qui a été donnée...

    Sinon lorsqu'on manipule des libellés de mois, il faut faire attention à la locale de SimpleDateFormat. Voir même générer un DateFormatSymbols customisé si on a des libellés non-standard.


    a++

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut
    merci pour ta réponse peux tu me donner un exemple d'utilisation de DateFormatSymbols ?

  4. #4
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut
    en fait j'ai utilisé le dateFormatSymbols.getShortMonths();
    il m'as retourné la liste suivante

    [janv., févr., mars, avr., mai, juin, juil., août, sept., oct., nov., déc., ]

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Ben utilise setShortMonths() pour fixer les libellés de ton choix...


    a++

  6. #6
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut
    j'ai trouvé la solution , il faut instancier un DateFormatSymbols avec un english local au lieu d'utiliser celle par defaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String pattern ="dd MMM yyyy"
    Locale id = new Locale("en");
     SimpleDateFormat formatter = new SimpleDateFormat(pattern, dfs);
    ParsePosition pos = new ParsePosition(0);
    Date imagedate = formatter.parse(15 NOV 2011);
    SimpleDateFormat  simpleFormat = new SimpleDateFormat("dd/MM/yyyy");
    System.out.println(simpleFormat.format(imagedate));

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 68
    Par défaut
    Citation Envoyé par youzigh Voir le message
    j'ai trouvé la solution , il faut instancier un DateFormatSymbols avec un english local au lieu d'utiliser celle par defaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String pattern ="dd MMM yyyy"
    Locale id = new Locale("en");
     SimpleDateFormat formatter = new SimpleDateFormat(pattern, dfs);
    ParsePosition pos = new ParsePosition(0);
    Date imagedate = formatter.parse(15 NOV 2011);
    SimpleDateFormat  simpleFormat = new SimpleDateFormat("dd/MM/yyyy");
    System.out.println(simpleFormat.format(imagedate));
    bonsoir
    dfs c'est quoi svp?
    et pourquoi l'objet id n'est pas réutilisé?

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je pense qu'il a oublié la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateFormatSymbols dfs = DateFormatSymbols.getInstance(id);
    C'est une bonne manière de faire quand on cherche à ce que seulement les mois soient en anglais, mais la plupart du temps, le plus simple est de définir directement que la Locale du SimpleDateFormat est anglaise. Logique.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Date imagedate = formatter.parse(15 NOV 2011);
    ça marche ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date imagedate = formatter.parse("15 NOV 2011",pos);
    A+.

  10. #10
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut
    dsl j'ai oublié des lignes des code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                Locale id = new Locale("en");
                 String pattern = ="dd MMM yyyy";
                 DateFormatSymbols dfs = new DateFormatSymbols(id);      
                 SimpleDateFormat formatter= new SimpleDateFormat(pattern, dfs);
                 Date imagedate = formatter.parse("15 NOV 2011");
                SimpleDateFormat  simpleFormat = new SimpleDateFormat("dd/MM/yyyy");
                 System.out.println(simpleFormat.format(imagedate));

  11. #11
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Date imagedate = formatter.parse(15 NOV 2011);

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui, oui, il n'utilise pas de copier/coller et c'est mal, c'est aussi pour ça qu'il avait oublié une ligne.

    Par contre, préciser la ParsePosition n'est pas obligatoire si on parse du début.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut
    éditer :

  14. #14
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Par contre, préciser la ParsePosition n'est pas obligatoire si on parse du début.
    Ca permet de vérifier que toute la chaine soit bien traité. Sinon le parse() peut s'arrêter avant la fin s'il trouve quelque-chose qui correspond...


    a++

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 68
    Par défaut
    Citation Envoyé par youzigh Voir le message
    éditer :
    problème donc...

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

Discussions similaires

  1. Formatage de date en diverses langues
    Par Caroline1 dans le forum Access
    Réponses: 6
    Dernier message: 26/04/2006, 14h47
  2. Formatage de date et 0
    Par christel1982 dans le forum ASP
    Réponses: 16
    Dernier message: 03/11/2005, 11h35
  3. [Date]Date sous Java != celle sous Access
    Par Cyborg289 dans le forum JDBC
    Réponses: 4
    Dernier message: 27/07/2005, 23h11
  4. [MSSQL][SQLDATE] Formatage de dates
    Par djskyz dans le forum Langage SQL
    Réponses: 6
    Dernier message: 15/09/2004, 10h36
  5. [tomcat] Formatage de date en FR
    Par PeteMitchell dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 10/05/2004, 11h41

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