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   -
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

3 réponses

gohlink Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   12
 
Bonjour,

Il faut passer par la classe SimpleDateFormat

http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html
0
tksteph Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   25
 
tu remplaces ta dernière instruction par ceci , et tu change le type de retour de ta méthode en String

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!
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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)

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();
}
0