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 :

String.format gestion de date


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut String.format gestion de date
    Bonjour

    voila mon objectif:
    j'ai un String qui représente une date au format yyyy-mm-dd , par exemple 2012-05-31 et je souhaite la transformer en different format en fonction d'une Locale
    Je souhaite obtenir une date aux formats suivants:

    31/05/2012
    5/31/2012
    31-5-2012

    Je me suis penché sur la classe Formatter et sur String.format mais je n'obtiens pas le résultat escompté notamment car les mois vont de 1 à 13

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Calendare c= new GregorianCalendar(2012,05,31);
    System.out.println(String.format("%1$td-%1$tm-%1$ty,c));
    Je pourrais bien sûr le faire avec des substrings etc mais ce n'est pas très clean ...

    Si vous avez une idée je suis preneur

    merci

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par noOneIsInnocent Voir le message
    mais je n'obtiens pas le résultat escompté notamment car les mois vont de 1 à 13
    Pas avec un GregorianCalendar, non, les mois y vont de 1 à 12.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Calendare c= new GregorianCalendar(2012,05,31);
    'Tention, avec ce constructeur-là les mois sont numérotés à partir de zéro. Là tu as pas le 31 Mai, mais le 31 Juin... Ce qui existe pas, donc ça passe au 1er Juillet.

    Le plus propre, c'est le passer par des DateFormat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DateFormat readingFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date date = readingFormat.parse("2012-05-31");
     
    DateFormat writingFormat = new SimpleDateFormat("d-M-yyyy");
    System.out.println(writingFormat.format(date));
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Merci Thelvin

    j'avais pensé à ta solution mais ça j'avais pas envie de déclarer 4 DateFormat et de faire 36 manipulations alors que ça me semblait plus simple avec le String.format
    Je vais devoir m'y résoudre

    Merci encore et bonne journée

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Bah, si tu veux, tu peux utiliser un DateFormat pour parser et juste ça, et utiliser les Formatter pour formater.

    Mais bon, "%1$td-%1$tm-%1$ty", plus simple que "d-M-yyyy" ? Tu es sérieux, là ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [AC-2007] Gestion du format de la date
    Par kimai81 dans le forum Modélisation
    Réponses: 5
    Dernier message: 07/01/2010, 17h04
  2. Parser un string format ISO en date Java
    Par ttttnht dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 16/07/2008, 17h59
  3. 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
  4. Réponses: 7
    Dernier message: 03/07/2007, 11h03
  5. [VBA-E] Gestion des dates selon format de départ
    Par Gamal le Celte dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/02/2007, 14h41

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