Voila tout est dans le titre. J'ai un String "Wed Mar 11 00:00:00 GMT 2009"
que je veux convertir en date.
Voila tout est dans le titre. J'ai un String "Wed Mar 11 00:00:00 GMT 2009"
que je veux convertir en date.
Pour parser ou formatter des dates selon un format précis, utilise SimpleDateFormat.
La FAQ aurait pu te renseigner...
Pourrais tu indiquer le code avec lequel tu fais tes tests?
1 - J'enregistre dans la base une date sous mysql new Date() ;
2- j'affiche ses données dans un JTable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public Operation(){ //setCode(new Long(01)); setLibelle("libelle"); setDatefin(new Date()); setDatedeb(new Date()); setDatesais(new Date()); setMontant(new Long(0)); setStatut("S"); setObjet("objet"); setDivers("divers"); }
pour ce faire j'utilise un cell render qui est JDateChooser
Cest donc à ce niveau que ça coince
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 import java.awt.Component; import javax.swing.JTable; import java.text.SimpleDateFormat; public class DateChooserRenderer extends com.toedter.calendar.JDateChooser implements javax.swing.table.TableCellRenderer { public DateChooserRenderer(){super();} public DateChooserRenderer(String arg0,String arg1,char c){super(arg0,arg1,c);} //public DateChooserRenderer(boolean startEmpty){super(startEmpty);} //public DateChooserRenderer(JCalendar jcalendar){super(jcalendar);} //public DateChooserRenderer(java.lang.String dateFormatString, boolean startEmpty){super(dateFormatString,startEmpty);} public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row, int column){ if (value == null) setDate(null); else { try { System.out.println(value.toString()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date d = formatter.parse(value.toString()); System.out.println(d); setDate(new java.util.Date()); } catch(Exception e) {e.printStackTrace();} } return this; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 java.util.Date d = formatter.parse(value.toString());
La problème est évident : tu trouves que "Wed Mar 11 00:00:00 GMT 2009" ça ressemble au format "yyyy-MM-dd" ?
Donc utilise un autre format lors de l'instanciation du SimpleDateFormat (la javadoc est ton amie...) et ça ira beaucoup mieux...![]()
C'est un problème de locale. Dans le constructeur du SimpleDateFormat, ajoute :
EDIT : trop lent, mais tu auras aussi un problème de Locale.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SimpleDateFormat format = new SimpleDateFormat( "...", java.util.Locale.US );
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
ce que vous avez proposé ne marche pas par contre
est passé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 setDate((Date)value);
A qui parles-tu ?
Ce que j'ai proposé fonctionne parfaitement chez moi. Mais comme tu sembles avoir du mal à aller voir la javadoc, voici le code fonctionnel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SimpleDateFormat dateFormat = new SimpleDateFormat( "EEE MMM d HH:mm:ss z yyyy", Locale.UK ); Date d = dateFormat.parse( "Wed Mar 11 00:00:00 GMT 2009" );
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Partager