Le format par défaut de Java.util.date s'apparente à ceci: "Lundi 27 mai 11h46h15 IST 2013". Comment puis-je convertir ceci en horodatage et calculer en secondes la différence entre la même heure et l'heure actuelle?
Java.util.Date date= new Java.util.Date();
Timestamp ts_now = new Timestamp(date.getTime());
Le code ci-dessus me donne l'horodatage actuel. Cependant, je n'ai aucune idée de la façon de trouver l'horodatage de la chaîne ci-dessus.
Vous pouvez utiliser la classe Calendar
pour convertir Date
public long getDifference()
{
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy");
Date d = sdf.parse("Mon May 27 11:46:15 IST 2013");
Calendar c = Calendar.getInstance();
c.setTime(d);
long time = c.getTimeInMillis();
long curr = System.currentTimeMillis();
long diff = curr - time; //Time difference in milliseconds
return diff/1000;
}
Meilleur
String str_date=month+"-"+day+"-"+yr;
DateFormat formatter = new SimpleDateFormat("MM-dd-yyyy");
Date date = (Date)formatter.parse(str_date);
long output=date.getTime()/1000L;
String str=Long.toString(output);
long timestamp = Long.parseLong(str) * 1000;
Vous pouvez utiliser DateFormat
(Java.text. *) Pour analyser la date:
DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
Date d = df.parse("Mon May 27 11:46:15 IST 2013")
Vous devrez changer les paramètres régionaux pour qu'ils correspondent aux vôtres (avec ceci, vous obtiendrez 10:46:15). Ensuite, vous pouvez utiliser le même code que vous avez pour le convertir en un horodatage.
Vous pouvez utiliser
long startTime = date.getTime() * 1000000;;
long estimatedTime = System.nanoTime() - startTime;
Pour avoir du temps en nano.