web-dev-qa-db-fra.com

Comment transformer currentTimeMillis en un format de date lisible?

Je souhaite utiliser currentTimeMillis deux fois pour pouvoir calculer une durée, mais je souhaite également afficher l'heure et la date au format lisible par l'utilisateur. J'ai des problèmes car currentTimeMillis convient au calcul, mais je ne vois pas de fonction intégrée permettant de convertir en heure de Nice ou en heure/date.

J'utilise

Android.text.format.DateFormat df = new Android.text.format.DateFormat();
df.format("yyyy-MM-dd kk:mm:ss", new Java.util.Date());

pour la production de l'heure et de la date de Nice et ce que j'aimerais en fin de compte, c'est afficher ma valeur résultante currentTimeMillis dans la fonction Android.text.format.DateFormat df = new Android.text.format.DateFormat();

par exemple.

Android.text.format.DateFormat df = currentTimeMillis();

quand j'essaye je reçois

Incompatibilité de type: impossible de convertir long en DateFormat

J'ai essayé d'utiliser un casting mais je ne vois pas comment accomplir cela.

52
Purplemonkey

Ça va marcher.

long yourmilliseconds = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");    
Date resultdate = new Date(yourmilliseconds);
System.out.println(sdf.format(resultdate));
123
asish

Il existe un moyen plus simple sous Android

 DateFormat.getInstance().format(currentTimeMillis);

De plus, Date est obsolète, utilisez donc DateFormat class.

   DateFormat.getDateInstance().format(new Date(0));  
   DateFormat.getDateTimeInstance().format(new Date(0));  
   DateFormat.getTimeInstance().format(new Date(0));  

Les trois lignes ci-dessus donneront:

Dec 31, 1969  
Dec 31, 1969 4:00:00 PM  
4:00:00 PM  12:00:00 AM
34
amalBit