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 habitué 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
    Points : 133
    Points
    133
    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 éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

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

  3. #3
    Membre du Club
    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
    Points : 48
    Points
    48
    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 habitué 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
    Points : 133
    Points
    133
    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 habitué 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
    Points : 133
    Points
    133
    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 éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

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

  7. #7
    Membre habitué 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
    Points : 133
    Points
    133
    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 habitué 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
    Points : 133
    Points
    133
    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 habitué 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
    Points : 133
    Points
    133
    Par défaut
    y'a pas quelqu'un qui peut m'aider ?

  10. #10
    Nouveau membre du Club
    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
    Points : 37
    Points
    37
    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 habitué 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
    Points : 133
    Points
    133
    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
    Nouveau membre du Club
    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
    Points : 37
    Points
    37
    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 confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475

  14. #14
    Membre habitué 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
    Points : 133
    Points
    133
    Par défaut
    OOOPS j'ai pas fait attention à ça !
    Merci.
    ça marche très bien.
    Le problème est résolu.

  15. #15
    Nouveau membre du Club
    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
    Points : 37
    Points
    37
    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