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 :

Conversion de String en Date


Sujet :

Collection et Stream Java

  1. #1
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut Conversion de String en Date
    Bonjour à tous,
    le problème récurent de la conversion String/Date ....

    J'ai regardé SimpleDateFormat déjà, mais mon problème vient du fait que les Mois dans chaîne n'ont pas toujours la même longueur...

    exemple de ce que je dois transformer en date :
    "28 jan. 08"
    "14 sept. 08"

    pour avoir 28/11/2008 et 14/09/2008 ....
    Je pense que la taille variable du mois pose un gros pb... A vous de me dire

    merci d avance
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  2. #2
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Salut à toi.

    Le problème, c'est pas tant le nombre de lettres variable, c'est plutôt de savoir si l'abréviation utilisée pour le mois va être reconnue par le SimpleDateFormat.

    Par exemple le parseur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SimpleDateFormat parseur = new SimpleDateFormat("dd MMM yy", Locale.FRANCE);
    marche pour les abréviation de mois suivantes :

    • janv. (janvier est reconnu également mais pas jan.)
    • févr. (février est reconnu également mais pas fév.)
    • mars
    • avr. (avril est reconnu également)
    • mai
    • juin
    • juil. (juillet est reconnu également)
    • août
    • sept. (septembre est reconnu également mais pas sep.)
    • oct. (octobre est reconnu également)
    • nov. (novembre est reconnu également)
    • déc. (décembre est reconnu également)



    A toi de dire si ça te convient.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  3. #3
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    La taille ne pose aucun problème puisque c'est bien géré par le pattern "MMM". Tu peux d'ailleurs utilisé la version courte ou la version longue d'un libellé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SimpleDateFormat parser = new SimpleDateFormat("dd MMM yy", Locale.FRENCH);
    Par contre ton problème vient du fait que tes abréviations ne sont pas celle qui sont couramment utilisé. Par exemple janvier s'abrège en janv. et non pas en jan. !

    La solution peut consister à redéfinir les abréviations des mois, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	DateFormatSymbols symbols = new DateFormatSymbols(Locale.FRANCE);
    	symbols.setShortMonths(new String[] {
    		"jan.", "fev.", "mars", "avr.", "mai", "juin",
    		"juil.", "aout", "sept.", "oct.", "nov.", "dec."
    	});
    	SimpleDateFormat parser = new SimpleDateFormat("dd MMM yy", symbols);

    a++

  4. #4
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par adiGuba Voir le message

    La solution peut consister à redéfinir les abréviations des mois, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	DateFormatSymbols symbols = new DateFormatSymbols(Locale.FRANCE);
    	symbols.setShortMonths(new String[] {
    		"jan.", "fev.", "mars", "avr.", "mai", "juin",
    		"juil.", "aout", "sept.", "oct.", "nov.", "dec."
    	});
    	SimpleDateFormat parser = new SimpleDateFormat("dd MMM yy", symbols);

    a++
    Tiens, je ne savais pas que l'on pouvait redéfinir les abréviations des mois. Bon à savoir, merci adiGuba.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  5. #5
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    Merci à vous deux pour cette rapidité
    Et dsl, en fait c'était bien "janv." mais je n'avais pas d'exemples sous la main

    Ça marche nikel en tous cas, bonne soirée et merci encore !
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

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

Discussions similaires

  1. Conversion string to date
    Par Fanny23 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 27/01/2012, 00h24
  2. conversion de string en date
    Par Kropernic dans le forum VB.NET
    Réponses: 17
    Dernier message: 24/05/2011, 14h43
  3. conversion de string en date
    Par zandru dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/08/2008, 16h23
  4. conversion String en Date
    Par lisa-java dans le forum Langage
    Réponses: 3
    Dernier message: 12/01/2006, 16h14
  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