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 :

Extraction de la date et l'heure à partir d'une chaîne suivant une syntaxe définie


Sujet :

Collection et Stream Java

  1. #1
    Membre éclairé Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Par défaut Extraction de la date et l'heure à partir d'une chaîne suivant une syntaxe définie
    Salut les ami(e)s,
    Je voudrais savoir comment pourrais-je extraire la date et le time à partir d'une chaine de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "8/1/2006 12:57:55 PM"
    La date que je vais utiliser doit avoir la syntaxe aaaa-mm-jj
    et l'heure ne doit pas être en PM ou AM. Il faut que ça soit de la forme hh:mm:ss (par exemple 23:05:25)

    Je vois pas bien la solution.
    Merci d'avance.

  2. #2
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    cf SimpleDateFormat

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 43
    Par défaut
    dans la faq java de dvp tu trouveras un topic qui est réservé a ce problème bien précis.

  4. #4
    Membre éclairé Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Par défaut
    Salut,
    Merci pour vos réponses.
    Mon problème c'est que j'ai plusieurs dates à convertir.
    parfois l'heure est en PM et d'autres en AM.
    J'ai consulté la FAQ mais je vois pas encore la solution.

  5. #5
    Membre éclairé Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Par défaut
    En fait,
    j'ai trouvé comment convertir la chaîne que j'ai en une date.
    Mais ce qui me gêne c'est comment convertir l'heure en base de AM/PM, en heure en base de 24h.

    Merci d'avance.

  6. #6
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Comment tu fais ?

  7. #7
    Membre éclairé Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Par défaut
    Voila le code que j'utilise
    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
     
    public class TestDate
    {
            public static void testParseDate(String sDate) {
                    try {
                            Date d = stringToDate(sDate, "dd/MM/yyyy hh:mm:ss a");
                            System.out.println(d.toString());
                    } catch(Exception e) {
                            System.err.println("Exception :");
                            e.printStackTrace();
                    }
            }
     
            public static Date stringToDate(String sDate, String sFormat) throws Exception {
                    SimpleDateFormat sdf = new SimpleDateFormat(sFormat);
                    return sdf.parse(sDate);
            }
     
            public static void main(String[] args) {
     
              testParseDate("20/8/2006 3:46:31 PM");
     
            }
     
    }
    et le résultat est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sun Aug 20 15:46:31 GMT+01:00 2006
    Je veux avoir comme résultat : "2006-08-20 15:46:31"

  8. #8
    Membre éclairé Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Par défaut
    J'ai modifié le code comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static void testParseDate(String sDate) {
                    try {
                            Date d = stringToDate(sDate, "dd/MM/yyyy hh:mm:ss a");
                            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
                            sd.format(d);                        
                            System.out.println(sd.format(d));
                    } catch(Exception e) {
                            System.err.println("Exception :");
                            e.printStackTrace();
                    }
            }
    Mais le résultat ne correspond pas à mes attentes.
    Le résultat est le suivant: "2006-08-20 03:46:31"
    L'heure n'est pas convertie.
    Merci.

  9. #9
    Membre éclairé Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Par défaut
    y'a pas quelqu'un qui peut m'aider ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 38
    Par défaut
    Une idée : regarder si ta date de départ contient AM ou PM, si elle contient PM, tu ajoutes 12 heures ?

  11. #11
    Membre éclairé Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Par défaut
    Quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(d.toString());
    sans formater la date 'd'
    Le résultat est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sun Aug 20 20:46:31 GMT+01:00 2006
    Mais quand je formate la date je n'obtiens pas ce que je veux.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 38
    Par défaut
    Mets les h en majuscules :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429

  14. #14
    Membre éclairé Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Par défaut
    OOOPS j'ai pas fait attention à ça !
    Merci.
    ça marche très bien.
    Le problème est résolu.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 38
    Par défaut
    N'oublies pas de cliquer sur 'Résolu' !

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 14/05/2011, 03h13
  2. [Turbo Pascal] Extraction de la plus longue sous-chaîne d'une chaîne
    Par yabo84 dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 24/02/2010, 14h00
  3. Réponses: 8
    Dernier message: 02/09/2008, 14h28
  4. Réponses: 6
    Dernier message: 12/04/2006, 16h46
  5. [datetime] conversion d'une chaîne en une date + heure
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 2
    Dernier message: 07/04/2005, 10h43

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