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

Interfaces Graphiques en Java Discussion :

Problème avec la date


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 42
    Par défaut Problème avec la date
    bonjour a tous .
    j'utilise j'ai la bibiotheque jcalender pour avoir l'option de choisir la date voulue.
    mon seul probleme c'est que j'arrive pas a avoir la date sous le format jjmmaaaa
    j'ai essayé ce code :
    String date1;
    date1 = jDateChoojDateChooser1.getDate().toString();
    mais il m'affiche : le 2 sep 2010 a 9:30 j'ai subdivisé la chaine date1 pour avoir que 2 sep 2010 mais lorsque je veux faire une conversion vers le type date (jjmmaaaaa) il me dire que c impossible voici l'exeption :

    Unparseable date: "2 sept 2010 "

    voulez vous m'aidez svp a régler ce probleme agaçant et merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    on pourrais voir le code et le stacktrace de l'exception? Ainsi qu'un lien vers la doc de la bibliothèque en question (de jcalendar, ça court les rues)

  3. #3
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 42
    Par défaut
    dsl j'ai cru que jcalender est une bibiotheque connue .

    voici le code de ma classe :


    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    package banque;
     
    import java.awt.BorderLayout;
    import javax.swing.JPanel;
    import javax.swing.JInternalFrame;
    import java.awt.Dimension;
    import java.awt.Rectangle;
    import javax.swing.JLabel;
    import java.awt.Font;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
     
    import javax.swing.JButton;
     
    public class solde extends JInternalFrame {
     
    	private JPanel jContentPane = null;
    	private com.toedter.calendar.JDateChooser jDateChoojDateChooser1 =      new com.toedter.calendar.JDateChooser();
    	private JLabel jLabel = null;
    	/**
             * This is the xxx default constructor
             */
    	public solde() {
    		super();
    		initialize();
    	}
     
    	/**
             * This method initializes this
             * 
             * @return void
             */
    	private void initialize() {
    		jDateChoojDateChooser1.setBounds(new Rectangle(359, 46, 169, 29));
    		jDateChoojDateChooser1.addMouseListener(new java.awt.event.MouseAdapter() {
    			public void mouseClicked(java.awt.event.MouseEvent e) {
    				System.out.println("mouseClicked()"); // TODO Auto-generated Event stub mouseClicked()
    			}
    		});
    		jDateChoojDateChooser1.addPropertyChangeListener("date",
    				new java.beans.PropertyChangeListener() {
    					public void propertyChange(java.beans.PropertyChangeEvent e) {
    						Date date ;
    						Dates Date= new Dates();
    						String date1;
    						date1 = jDateChoojDateChooser1.getDate().toLocaleString();
    						date1 = date1.substring(0, 6)+ date1.substring(7, 13);
    						System.out.println("date1 = " +date1);
    						SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yy hh:mm");
     
    						dateFormat.setLenient(false);
     
    							try {
    								try {
    									Date dat =stringToDate(date1);
    									System.out.println("date = " +dat);
    								} catch (Exception e1) {
    									// TODO Auto-generated catch block
    									e1.printStackTrace();
    								}
    							//	date = dateFormat.parse(date1);
     
    							} catch (Exception e1) {
    								// TODO Auto-generated catch block
    								e1.printStackTrace();
    							}
     
     
     
     
    					}
    				});
    		this.setSize(808, 501);
    		this.setContentPane(getJContentPane());
    	}
     
    	/**
             * This method initializes jContentPane
             * 
             * @return javax.swing.JPanel
             */
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jLabel = new JLabel();
    			jLabel.setBounds(new Rectangle(103, 46, 248, 26));
    			jLabel.setFont(new Font("Times New Roman", Font.BOLD, 18));
    			jLabel.setText("Choisir la date de reglement :");
    			jContentPane = new JPanel();
    			jContentPane.setLayout(null);
    			jContentPane.add(jDateChoojDateChooser1, null);
    			jContentPane.add(jLabel, null);
    			jContentPane.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
    				public void propertyChange(java.beans.PropertyChangeEvent e) {
    					if ((e.getPropertyName().equals("enabled"))) {
    						System.out.println("propertyChange(enabled)"); // TODO Auto-generated property Event stub "enabled" 
    					}
    				}
    			});
    		}
    		return jContentPane;
    	}
     
     
     
    public static Date stringToDate(String sDate) throws Exception 
    {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy hh:mm");
        return sdf.parse(sDate);
    }
     
    }

    et voici l'escption :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    java.text.ParseException: Unparseable date: "1 sept 2010 "
    	at java.text.DateFormat.parse(Unknown Source)
    	at banque.solde.stringToDate(solde.java:110)
    	at banque.solde$2.propertyChange(solde.java:57)
    	at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    	at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    	at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    	at java.awt.Component.firePropertyChange(Unknown Source)
    	at com.toedter.calendar.JDateChooser.propertyChange(Unknown Source)
    	at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)date1 = 1 sept 2010 
     
    	at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    	at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    	at java.awt.Component.firePropertyChange(Unknown Source)
    	at com.toedter.calendar.JTextFieldDateEditor.setDate(Unknown Source)
    	at com.toedter.calendar.JTextFieldDateEditor.setDate(Unknown Source)
    	at com.toedter.calendar.JDateChooser.setDate(Unknown Source)
    	at com.toedter.calendar.JDateChooser.propertyChange(Unknown Source)
    	at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    	at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    	at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    	at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    	at java.awt.Component.firePropertyChange(Unknown Source)
    	at javax.swing.JComponent.firePropertyChange(Unknown Source)
    	at com.toedter.calendar.JDayChooser.setDay(Unknown Source)
    	at com.toedter.calendar.JDayChooser.actionPerformed(Unknown Source)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)

  4. #4
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 42
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    on pourrais voir le code et le stacktrace de l'exception? Ainsi qu'un lien vers la doc de la bibliothèque en question (de jcalendar, ça court les rues)

    j'ai pa un lien vers la doc malheuresement car c un ami qui ma montrer a peut pres comment ça marche .

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Comment dire, une date et sa représentation en chaine sont deux choses tout à fait différents, une date est en fait un chiffre (un long représentant un nombre de millisecondes depuis un instant précis) que l'on peut représenter sous des milliers de formes différentes. Dans quoi stockes tu ta date? Si c'est dans un champ date dans une table, le format d'affichage n'a aucune importance. Et si tu utilises un champ de type varchar, bah en fait c'est vraiment pas u_ne bonne idée.

    Sinon pour ce qui concerne le formatage des dates en chaine il te faut utiliser un SimpleDateFormat et non le toString qui va potentiellement changer selon les environnements sur lesquels ton appli pourrait tourner.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static Date stringToDate(String sDate) throws Exception 
    {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy hh:mm");
        return sdf.parse(sDate);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.text.ParseException: Unparseable date: "1 sept 2010 "
        at java.text.DateFormat.parse(Unknown Source)
        at banque.solde.stringToDate(solde.java:110)
        at banque.solde$2.propertyChange(solde.java:57)
    clairement, il a une contradiciton entre le format que tu utilise pour le parsing, et le format dans lequel tu récupère la date de ton champ. Ceux-ci doivent correspondre.

  7. #7
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 42
    Par défaut
    j'ai pas bien pigé ou est le probleme pour faire le parising . tu dis qu'il faut etre du meme type . alors quelle type je dois prendre parceque la je suis vraiment perdu . j'ai une chaine Sdate = "2 sep 2010 " et je veux avoir une date "02-09-2010" comment dois-je procéder alors .
    merci de bien vouloir m'aider

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu dois utiliser un format pour la lecture de 2 sept 2010 et un autre format pour la reconversion de ce Date vers une nouvelle String, tout simplement.

    En l'occurence, pour 2 sept 2010, le format est, de mémoire "dd MMM yyy", cf la doc de simpledateformat pour plus de détails

Discussions similaires

  1. problème avec les dates!!
    Par JauB dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/10/2005, 09h16
  2. problème avec les dates nulles
    Par shingo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 30/09/2005, 12h32
  3. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 15h30
  4. [SQL] problème avec les date et les group By
    Par Stef784ever dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2004, 09h18
  5. Interbase - dbExpress -> problème avec les dates
    Par marghett dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/07/2004, 03h55

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