Conversion d'une variable Long en Date

Résolu
Signaler
Messages postés
21
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 octobre 2012
-
Messages postés
21
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 octobre 2012
-
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

Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
25
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
Messages postés
21
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
2 octobre 2012

merci bien :)