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 :

Suppression de HH:MM:SS d'une date


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Points : 43
    Points
    43
    Par défaut Suppression de HH:MM:SS d'une date
    bonjour

    je veut récupérer un champ date de ma base de données Mysql il est du format
    yyyy/mm/jj hh:mm:ss et moi je ne veut avoir que yyyy/mm/jj.

    comment on peut formatter cette date ??

    merci a vous

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Voire "DateFormat" je pense.

    Ou alors tu fais a la avec un split sur le caractere 'espace' en prenant que la partie gauche.
    (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 éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Si dans ta base MySql le champ est de type DATE :
    Soit tu le récupères sous forme d'une date, et ensuite tu le convertis en chaîne de caractère dans le code Java à l'aide de SimpleDateFormat.
    Soit tu le récupères directement sous forme d'une chaîne de caractère en utilisant la fonction DATE_FORMAT dans ta requête SQL.

    Si dans ta base MySql le champ est de type VARCHAR :
    Tu le récupères sous forme de chaîne de caractère et ensuite tu peux effectuer d'abord un parse pour vérifier que c'est bien une date valide, puis un format pour formater cette date comme tu le souhaites, à l'aide de deux SimpleDateFormat différents.

  4. #4
    Membre du Club

    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Points : 45
    Points
    45
    Par défaut String
    Bonjour,
    Pour récupérer la date en format "yyyy-mm-jj" utiliser getString() à la place getDate();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ResultSet resultSet= ....//La teble de données
     
    String date = resultSet.getString(Nom_ou_numéro_de_colonne);

  5. #5
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    en fait je travaille sur un projet java et je voudrais afficher la date dans un tableau j'ai essayé plein de méthode avec SimpleDateFormat mais je n'ai pas réussi à avoir le format que je veut càd yyyy-mm-dd j'ai toujours le format yyyy-mm-dd hh:mm:ss.

  6. #6
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Normalement SimpleDateFormat te permet de représenter une date plus ou moins comme tu veux.
    Le mieux serait que tu nous copie-colle ton bout de code, pour que l'on voit pourquoi tu n'as pas réussi à faire fonctionner ton programme.
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  7. #7
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Date d = new Date();
     
    // ici je récupére la date de ma base Mysql
    d = m.getDateDebut(); // j'obtiens 2009-10-05 00:00:00
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     
    // on formatte la date
     String newdate = sdf.format(d); // ici j'obtiens 2009-10-05
     
    //on convertie la chaine en date 
     Date dateFormate = new Date();
    dateFormate = sdf.parse(newdate); // ici j'obtiens Mon Oct 05 00:00:00 VET 2009
    ce je veut récupéré c'est une date au format yyyy-mm-dd

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par meriyem Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    d = m.getDateDebut(); // j'obtiens 2009-10-05 00:00:00
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String newdate = sdf.format(d); // ici j'obtiens 2009-10-05
    ce je veut récupéré c'est une date au format yyyy-mm-dd
    Euh... donc ça veut dire que c'est bon, tu as résolu ton problème, non ?
    (remarque au passage : le Date d = new Date(); est inutile puisque juste après tu donnes une autre valeur à d)

  9. #9
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    oui en quelque sorte mais je veut récupérer une date et non pas une chaine de caratère c'est un problème de conversion.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //on convertie la chaine en date 
     Date dateFormate = new Date();
    dateFormate = sdf.parse(newdate);
    ce code ne marche pas il me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mon Oct 05 00:00:00 VET 2009

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Ta date, sous forme d'objet Date, tu l'as là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date d = m.getDateDebut();

    Pour la formater, c'est-à-dire la transformer en chaîne de caractères selon le format voulu, tu as très bien réussi à utiliser le SimpleDateFormat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String formattedDate = sdf.format(d);
    (oui, j'ai renommé la variable, pour que son nom reflète mieux ce qu'elle représente...)


    Ensuite, je n'ai pas vraiment compris ce que tu essaies de faire...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date d2 = sdf.parse(formattedDate);
    Si tu re-parses la chaîne obtenue après avoir formaté la date d, tu vas obtenir la même date, modulo les informations non inclues dans le format : tu perdras les heures/minutes/secondes par rapport à l'objet d. Ce n'est donc pas tout à fait le même objet que d, mais ça reste un objet Date, or tu as dit que ce que tu voulais c'était la date formatée, c'est-à-dire formattedDate.
    Une date est une date, un objet Date c'est un objet qui représente un "moment" (date+heure). Une "date formatée" c'est une chaîne de caractère représentant la date sous un certain format, c'est donc un objet String.
    Tu as ta date (l'objet Date d) et tu sais la transformer en chaîne de caractère selon le format que tu veux (l'objet Date formattedDate). Tu as donc tout ce qu'il faut pour soit manipuler la date sous forme d'un objet Date, soit l'afficher sous forme d'une chaîne de caractère String de format défini. Évidemment, il ne faut pas utiliser pour l'affichage la chaîne de caractère d.toString() (ce qui formate la date avec un format par défaut similaire à new SimpleDateFormat("EEE MMM dd hh:mm:ss zzz yyyy", Locale.US)), mais bien utiliser la date formatée formattedDate.

  11. #11
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date d2 = sdf.parse(formattedDate);
    ce que j'essaye de faire avec le code ci dessus c'est de convertir la chaine formattedDate en un objet Date.

    maintenant je cherche comment on fait la conversion de string vers date avec un format précis (yyyy-mm-dd)

  12. #12
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Ce que tu cherches à faire n'est tout simplement pas possible : un objet Date contient une date (et pour être plus précis un "timestamp"), mais aucune information sur son format.

    Dès que tu veux un format, tu dois passer par un formatteur (SimpleDateFormat) et enregistrer la "date formattée" dans une chaîne de caractères.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  13. #13
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    ok !! ça je ne le savais pas , donc ce n'est pas la peine que je me casse la tête d'avantage

    merci

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

Discussions similaires

  1. [PostgreSQL] suppression de '00' au début d'une date
    Par markox dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/11/2010, 11h57
  2. Réponses: 0
    Dernier message: 06/04/2009, 11h37
  3. Suppression de zéros dans une date
    Par habilité dans le forum Tcl/Tk
    Réponses: 3
    Dernier message: 17/04/2008, 20h05
  4. suppression fichier en fonction d'une date
    Par kalyparker dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 02/07/2007, 14h19
  5. Requete de suppression avec en condition une date
    Par PrinceMaster77 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/04/2004, 09h23

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