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

API standards et tierces Java Discussion :

Convertir un string en date


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Par défaut Convertir un string en date
    Bonjour,

    J'aimerai savoir comment convertir un string en un date. Le string que je récupère est de ce format :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Mon Jul 27 2015 00:00:00 GMT+0200
    et j'aimerai le convertir en date sous le format
    J'avais fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	Date date = null;
    		String dateStr = this.getDateDebut();
    		if (dateStr != null && !"".equals(dateStr)){
    				SimpleDateFormat sdf = new SimpleDateFormat("EE-dd-MM-yyyy");
    				date = sdf.parse(dateStr);
    				//System.out.println("");
    		}
    mais çà ne marche absolument pas

    J'ai vu qu'il y avait déjà une discussion sur ce thème mais elle est résolue est la solution proposé ne fonctionne pas
    J'ai regardé la documentation proposé
    sur ce lien
    mais je n'ai rien compris

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    "ça ne marche pas" ... ha ouais effectivement ça c'est un super message d'erreur explicatif qui nous aide beaucoup.

    A mon avis ton pattern est faux, tu mets des tirets déjà alors que ton string n'en contient pas, ce sont des espaces. Il suffit de bien réécrire le pattern et ca devrait passer (sauf peut être pour "GMT" la j'ai un doute).

    Et aussi, il faut mettre à mon avis la locale en anglais (Mon de monday...)

    Un indice pour le pattern :

    "Mon Jul 27 2015" -> "EEE MMM d yyyy"
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre chevronné Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Par défaut
    Bonjour,
    Attention à la Locale, c'est une date anglaise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Date date = null;
    		String dateStr = "Mon Jul 27 2015 00:00:00 GMT+0200";
    		if (dateStr != null && !"".equals(dateStr)){
    				SimpleDateFormat sdf = new SimpleDateFormat("E MMM d yyyy HH:mm:ss",Locale.ENGLISH);
    				date = sdf.parse(dateStr);
    				SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MM-yyyy");
    				System.out.println(sdf2.format(date));
    		}
    Et voilà !
    [EDIT] Oups note pour plus tard, rafraîchir avant de poster !

  4. #4
    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
    En principe je ne donne pas de solution toute faite sans encourager à réfléchir, mais puisque c'est déjà fait...

    Voici la méthode avec l'API time de Java 1.8 :

    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
    String s = "Mon Jul 27 2015 00:00:00 GMT+0200";
     
    // parsing
    // GMT+0200 n'est pas très standard comme façon de noter. On suppose que 'GMT'Z permettra de le parser toujours sans erreur.
    // De toute façon l'heure et la time zone sont ignorées puisqu'on parse un LocalDate.
    DateTimeFormatter parser = DateTimeFormatter.ofPattern("E MMM d y HH:mm:ss 'GMT'Z", Locale.US);
     
    LocalDate date = LocalDate.parse(s, parser);
     
    System.out.println(date);
     
    // formatting
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
     
    String formatted = formatter.format(date);
     
    System.out.println(formatted);
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Par défaut
    Jabbal'H > Merci 1000 fois, çà marche nikel !

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

Discussions similaires

  1. Convertir une string en Date
    Par bibou dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 06/05/2008, 16h42
  2. convertir une string en date
    Par Art19 dans le forum Delphi
    Réponses: 7
    Dernier message: 23/04/2007, 17h42
  3. Convertir une string en date.
    Par Empty_body dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/11/2006, 21h56
  4. [vba] convertir une string en date
    Par megapacman dans le forum Access
    Réponses: 1
    Dernier message: 11/09/2006, 15h46
  5. [Firebird] Convertir une String en date
    Par laffreuxthomas dans le forum SQL
    Réponses: 1
    Dernier message: 04/05/2005, 19h42

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