Date_parse
laurent2403
Messages postés
79
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
bonjour tout le monde
j'ai une fonction qui me retourne une date sous un format qui ne m'interesse pas trop , j'aimerais pouvoir parser son resultat sous forme d'une date de type "yyyy/MM/dd" je n'y arrive pas si quelqu'un pouvait m'aider ce serais cool , merci d'avance .
voici ma fonction
public class TestDate {
public static Date deplacerDate(Date dateDepartRef,int nb_jour_deplacer){
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateDepartRef);
Calendar calendar2 = Calendar.getInstance();
calendar2.clear();
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)-1);
calendar2.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)+nb_jour_deplacer);
return calendar2.getTime();
}
ca me retourne cela : Thu Jun 20 00:00:00 SBT 2002
j'aimerais plutot ceci : 2002/06/20
j'ai une fonction qui me retourne une date sous un format qui ne m'interesse pas trop , j'aimerais pouvoir parser son resultat sous forme d'une date de type "yyyy/MM/dd" je n'y arrive pas si quelqu'un pouvait m'aider ce serais cool , merci d'avance .
voici ma fonction
public class TestDate {
public static Date deplacerDate(Date dateDepartRef,int nb_jour_deplacer){
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateDepartRef);
Calendar calendar2 = Calendar.getInstance();
calendar2.clear();
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)-1);
calendar2.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)+nb_jour_deplacer);
return calendar2.getTime();
}
ca me retourne cela : Thu Jun 20 00:00:00 SBT 2002
j'aimerais plutot ceci : 2002/06/20
3 réponses
Bonjour,
Il faut passer par la classe SimpleDateFormat
http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html
Il faut passer par la classe SimpleDateFormat
http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html
tu remplaces ta dernière instruction par ceci , et tu change le type de retour de ta méthode en String
Si tu veux être le meilleur, il faut que tu battes le meilleur!
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); return sdf.format(calendar2.getTime());
Si tu veux être le meilleur, il faut que tu battes le meilleur!
Pour moi le problème ne vient pas de la méthode deplacerDate, elle renvoie un objet Date, ce qui est tout à fait correct, il n'y a pas de raison de modifier le résultat.
Si tu obtiens "Thu Jun 20 00:00:00 SBT 2002" c'est parce qu'ensuite tu essayes d'afficher cette date, ce n'est donc qu'un simple problème d'affichage, il serait donc plus correct de modifier ton affichage plutôt que le résultat de la méthode.
Par exemple, en utilisant System.out.printf (voir la documentation de Formatter)
Remarque : la classe GregorianCalendar permet de simplifier tes calculs de date.
Si tu obtiens "Thu Jun 20 00:00:00 SBT 2002" c'est parce qu'ensuite tu essayes d'afficher cette date, ce n'est donc qu'un simple problème d'affichage, il serait donc plus correct de modifier ton affichage plutôt que le résultat de la méthode.
Par exemple, en utilisant System.out.printf (voir la documentation de Formatter)
Date date = deplacerDate(dateDepartRef, nb_jour_deplacer); System.out.printf("%tF",date); // ISO 8601 : "AAAA-MM-JJ" System.out.println(); System.out.printf("%1$tY/%1$tm/%1$td",date); // "AAAA/MM/JJ"
Remarque : la classe GregorianCalendar permet de simplifier tes calculs de date.
public static Date deplacerDate(Date dateDepartRef, int nb_jour_deplacer) { GregorianCalendar calendar = new GregorianCalendar(); calendar.setTime(dateDepartRef); calendar.add(GregorianCalendar.DAY_OF_YEAR, nb_jour_deplacer); return calendar.getTime(); }