web-dev-qa-db-fra.com

Convertir le format par défaut Java.util.date en horodatage en Java

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.

8
swateek

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;
}
11
Rahul Bobhate

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;
8
Kishore

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.

0
Salem

Vous pouvez utiliser

  long startTime = date.getTime() * 1000000;;
  long estimatedTime = System.nanoTime() - startTime;

Pour avoir du temps en nano.

Java Docs

0
nidhin