Conversion d'une variable Long en Date

Résolu
cedric774 Messages postés 21 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 2 octobre 2012 - 8 nov. 2011 à 17:21
cedric774 Messages postés 21 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 2 octobre 2012 - 8 nov. 2011 à 19:29
Bonjour à tous

je suis actuellement coincé sur un petit problème qui doit être facilement résolu mais je tourne un peu en rond.

Le but du prog est de transformer une variable de type long (ex : 20111108 => la date d'auj sous le format yyyyMMjj) en une variable de type Date que j'insérerais dans une base de données (sous le format Date)

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class App
{
public static void main( String[] args )
{

Long theD = new Long(20111108);		
String creationDate = theD.toString();

int yyyy = Integer.parseInt(creationDate.substring(0,4));
int MM = Integer.parseInt(creationDate.substring(4,6));
int jj = Integer.parseInt(creationDate.substring(6,8));

System.out.println("Creation date : " + creationDate);
System.out.println("yyyy : " + yyyy);
System.out.println("MM : " + MM);
System.out.println("jj : " + jj);

String dateString = "" + yyyy + MM + jj;
Date theDate = new Date(yyyy, MM-1, jj);

DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
String the = dateFormat.format(theDate);
System.out.println(the);


String dateString2 = "" + jj + MM + yyyy ;
Date theDate2 = new Date(jj, MM-1, yyyy);
DateFormat dateFormat2 = new SimpleDateFormat("dd-MMM-yyyy");
String the2 = dateFormat2.format(theDate2);
System.out.println(the2);

}
}




et voilà l'output ... la décomposition du long en String est correcte mais je ne sais pas si c'est effectivement nécessaire.

Creation date : 20111108
yyyy : 2011
MM : 11
jj : 8
08-Nov-3911
04-May-1914


une idée pour m'aider ??

merci

2 réponses

cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
8 nov. 2011 à 17:45
Tu fais une mauvaise utilisation du constructeur Date(), je te renvoie vers la documentation Oracle :

http://download.oracle.com/javase/7/docs/api/java/util/Date.html#Date()
Pour information ce constructeur est déprécié et son usage est déconseillé.

Il serait plus élégant d'utiliser pleinement les DateFormat :

long dateLong = 20111108;
String dateStringEntree = Long.toString(dateLong);

DateFormat formatEntree = new SimpleDateFormat("yyyyMMdd");
DateFormat formatSortie = new SimpleDateFormat("dd-MMM-yyyy");

try {

Date date = formatEntree.parse(dateStringEntree);
String dateStringSortie = formatSortie.format(date);
System.out.println(dateStringSortie);

} catch (ParseException erreurFormat) {

System.out.println("Impossible de lire la date : " + dateStringEntree);

}


Jonathan
3
cedric774 Messages postés 21 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 2 octobre 2012
8 nov. 2011 à 19:29
merci bien :)
0
Rejoignez-nous