Formater une date

Fermé
Nikko - 19 mars 2008 à 16:53
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 20 mars 2008 à 13:40
Bonjour,

Je suis en train de développer une application java. Dans cette application, je dois comparer des dates. J'utilise java.util.date.

Je créé donc une date (qui sera celle du jour) comme suit : Date datedujour = new Date();

Cette date est sous la forme Sat Mar 01 00:00:00 CET 2008. La date à laquelle je veux comparer la datedujour avec une date du format 2008-03-19. Or, cette comparaison est impossible au vu des 2 formats de date différents que j'ai. L'idéal serait d'avoir 2 dates du type 2008-03-19.

Ma question est alors : comment convertir la datedujour en 2008-03-19 ?

Par avance merci,
Nikko

3 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
19 mars 2008 à 17:51
Bonjour,

Pour formater ta date, il faut que tu créé un "squellette", puis que tu format ta date avec ce dernier :
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(true);
Date d = new Date();
  
try {
   d = sdf.parse(theDate);
} catch (Exception e) {
   System.out.println("Malformed date : ");
}

0
Salut kij_82,

Tout d'abord je te remercie de ta réponse.

Dans le code que tu as fourni, à la ligne "d = sdf.parse(theDate);" la variable theDate est de type String ? Elle est censée avoir quelle valeur ? Car je ne souhaite pas lui attribuer manuellement la date du jour. Il faut que j'automatise au maximum mon programme.

Je te remercie d'avance,
Nikko
0
J'ai essayé ton code en passant "theDate" en String et avec valeur "2008-03-20" et j'ai rajouté un System.out.println(d) à la fin et le reste que je récupère est le suivant : Thu Mar 20 00:00:00 CET 2008. Ce résultat est donc différent de celui là : 2008-03-20... Je n'arrive pas à trouver la méthode qui me donne le dernier résultat...
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
20 mars 2008 à 13:40
Autant pour moi désolé j'aicopier / coller sans trop faire gaffe un code qui n'était pas fonctionnel
Voici la bonne version :)
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		sdf.setLenient(true);
		Date d = new Date();
  		System.out.println("Date before : "+d.toString());
		try {
		   String myDate = sdf.format(d);
		   System.out.println("Date after : "+myDate);
		} catch (Exception e) {
		   System.out.println("Malformed date : "+e.getMessage());
		}

0