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 :

problème avec conversion au type date


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Août 2009
    Messages : 18
    Par défaut problème avec conversion au type date
    bonjour à tous ,
    pour convertir un string au type date j'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
       public static Date stringToDate(String sDate, String sFormat) throws ParseException {
           SimpleDateFormat sdf = new SimpleDateFormat(sFormat);
           return sdf.parse(sDate);
         } 
        public static void testParseDate(String sDate) {
    		try {
    			Date d = stringToDate(sDate, "yyyy-MM-dd");
    			System.out.println(d.toString());
    		} catch(Exception e) {
    			System.err.println("Exception :");
    			e.printStackTrace();
    		}
    	}
    et ça marche a merveille il me convertit la date mais le probleme c'est que j'ai un resultat de type :
    Fri Aug 28 00:00:00 GMT 2009
    mais moi je veux avoir un resultat comme ceci : 2009-08-28 pour que je puisse l'inserer dans la base de données
    parce qu'avec la première conversion il ne reconnait pas la date il laisse 0000-00-00
    et merci d'avance

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Une date est une date, et n'a pas de format particulier.
    Si tu veux l'afficher dans un format particulier, tu dois utiliser un SimpleDateFormat adéquat...


    a++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Août 2009
    Messages : 18
    Par défaut
    ouii je sais et je suis tout a fait d'accord mais j'ai utilisé mille façons avec ce SimpleDateFormat mais il affiche toujours ce résultat Fri Aug 28 00:00:00 GMT 2009

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    Citation Envoyé par cute_h Voir le message
    ouii je sais et je suis tout a fait d'accord mais j'ai utilisé mille façons avec ce SimpleDateFormat mais il affiche toujours ce résultat Fri Aug 28 00:00:00 GMT 2009
    En tous cas, dans le code que tu as donné tu affiches directement d.toString() au lieu d'utiliser un DateFormat...
    Si comme tu le dis tu as essayé avec un SimpleDateFormat et que ça n'a pas marché, peux-tu montrer ce que tu as fait ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Août 2009
    Messages : 18
    Par défaut
    pour l'affichage j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      public static void testParseDate(String sDate) {
    		try {
    			Date d = stringToDate(sDate, "yyyy-MM-dd");
    			 Locale locale = Locale.getDefault();
    			DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT,locale);
    			System.out.println(new SimpleDateFormat("yyyy-MM-dd",locale).format(d));
    		} catch(Exception e) {
    			System.err.println("Exception :");
    			e.printStackTrace();
    		}
    	}
    et j'obtiens la forme que je veux 2009-08-28

    mais a vrai dire mon prblème n'est pas dans l'affichage , moi je veux que lors de la conversion j'obtien un resultat sous la forme 2009-08-28 parce que j'ai un probleme avec la fonction sql DATEDIFF
    parce que j'utilise des dates string et lors de la compilation il le me donne un resultat comme ceci
    DATEDIFF(Sun Aug 09 00:00:00 CEST 2009,Thu Jul 09 00:00:00 CEST 2009)

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Et quel est le problème précis alors ??? (pourquoi ne pas avoir commencé par cela ?)

    a++

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Si tu veux accéder à ta date formattée il faut systématiquement passer par un DateFormat.
    Normalement tu n'es pas vraiment censé utiliser une Date directement dans une chaîne de caractère, comme dis plus haut l'objet "Date" n'a pas de notion de format. Quand tu l'utilises pour l'afficher ou le mettre dans une String, il se met automatiquement au format du style "Thu Jul 09 00:00:00 CEST 2009" parce que c'est le format standard (de la classe ou de la JVM je ne sais plus), et tu ne peux pas le changer!

    Sinon j'ai une autre question: ton DateDiff, tu l'exécutes sur deux dates que tu connais dans ton programme? pourquoi ne pas le faire directement dans ton programme plutot que de le faire exécuter par le SGBD distant alors?

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

Discussions similaires

  1. [C# 2.0] Problème de conversion de type
    Par freerider1 dans le forum Windows Forms
    Réponses: 18
    Dernier message: 11/08/2017, 13h50
  2. Réponses: 2
    Dernier message: 20/10/2008, 16h40
  3. Retrieve avec paramètre de type date
    Par digital prophecy dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 09/08/2006, 13h32
  4. [Excel] Problème de conversion de type de données
    Par keiserjo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2006, 12h26
  5. (Problème avec...) conversion de std::string en char
    Par crossbowman dans le forum SL & STL
    Réponses: 7
    Dernier message: 05/03/2006, 19h54

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