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 :

probleme format de date


Sujet :

Collection et Stream Java

  1. #1
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut probleme format de date
    Bonjour
    j'essayes de modifier le format de la date passée en param d'entrée mais j'ai l'erreur suivante :
    java.text.ParseException: Unparseable date: "2009-09-01"

    en passant 2009-09-01 j'aimerai écire Lun 09 Sep
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    import java.util.Date;
    import java.text.SimpleDateFormat;
     
    public class TestDate
    {
    	public static void testParseDate(String sDate) {
    		try {
    			Date d = stringToDate(sDate);
    			System.out.println(d.toString());
    		} catch(Exception e) {
    			System.err.println("Exception :");
    			e.printStackTrace();
    		}
    	}
     
    	public static Date stringToDate(String sDate) throws Exception {
    		SimpleDateFormat sdf = new SimpleDateFormat("EEEE MM MMMM");
                    return sdf.parse(sDate);   
    	}
     
    	public static void main(String[] args) {
    		testParseDate("2009-09-01");
    		//testParseDate("2002/10-20"); // ParseException
    		//testParseDate(null);     // NullPointerException
    	}
    }
    Merci de votre aide

  2. #2
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Bonjour,

    le problème est un problème de pattern utilisé pour parser la date
    un coup d'œil dans la javadoc peut-être utile.

  3. #3
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    bonjour fnobb,
    je viens de changer mon pattern en : new SimpleDateFormat("EEE, d MMM yyyy");, mais j'ai tjs là même erreur.

  4. #4
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Pourquoi faire compliqué ?

    2008 c'est l'année => yyyy
    09 c'est le mois => MM
    01 c'est le jour => dd
    - étant un caractère à ne pas parser il suffit de l'entourer de simple quote '

    => pour transformer "2008-09-01" en Date il suffit d'utiliser le pattern "yyyy'-'MM'-'dd"

  5. #5
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    ok, mais je dois sans doute mal m'y prendre car ce que je veux c'est passer 2008-09-01 et avoir en retour Lun 01 septembre, faut peut-être que je passe par applyPattern après avoir converti avec le pattern "yyyy'-'MM'-'dd

  6. #6
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    pour transformer "2008-09-01" en "lundi 01 septembre" il faut faire une double conversion String->Date->String

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    String dateS = "2008-09-01";
    //pattern de lecture du format string initial
    java.text.SimpleDateFormat sdf1 = new java.text.SimpleDateFormat("yyyy'-'MM'-'dd");
    //la date
    java.util.Date date =  sdf1.parse(dateS);
    //pattern d'ecriture du format String final
    java.text.SimpleDateFormat sdf2 = new java.text.SimpleDateFormat("EEEE dd MMMM");
     
    System.out.println(sdf2.format(date));

  7. #7
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Merci beaucoup fnobb

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

Discussions similaires

  1. [XL-2007] probleme format nombre date
    Par polcli dans le forum Excel
    Réponses: 4
    Dernier message: 28/02/2010, 15h35
  2. Réponses: 1
    Dernier message: 24/05/2007, 16h02
  3. probleme format de date
    Par pouss dans le forum Oracle
    Réponses: 2
    Dernier message: 12/03/2007, 20h28
  4. [DATE] - probleme format de date retournée extension mssql
    Par lourai dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/01/2007, 10h46
  5. Probleme Format de date
    Par chris76 dans le forum Access
    Réponses: 6
    Dernier message: 01/03/2006, 12h17

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