2013-05-27 14 views
7

Das Standardformat von java.util.date ist etwa so "Mon May 27 11:46:15 IST 2013". Wie kann ich dies in einen Zeitstempel umwandeln und in Sekunden den Unterschied zwischen gleicher und aktueller Zeit berechnen?Konvertieren java.util.date Standardformat zu Timestamp in Java

java.util.Date date= new java.util.Date(); 
Timestamp ts_now = new Timestamp(date.getTime()); 

Der obige Code gibt mir den aktuellen Zeitstempel. Ich habe jedoch keine Ahnung, wie man den Zeitstempel der obigen Zeichenfolge findet.

+0

möglich Duplikat [Java-String to date Konvertierung] (http://stackoverflow.com/questions/4216745/java-string-to-date-conversion) –

+0

Ich habe keine Angst Ich habe gerade an dem Timestamp-Format gearbeitet. – swateek

+0

Duplizieren: [Java: String in Zeitstempel konvertieren] (http://stackoverflow.com/q/18915075/642706) –

Antwort

10

Sie können die Calendar Klasse verwenden 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; 
} 
+0

Während ich versuche, "Mon 27. Mai 11:46:15 IST 2013" String bis heute zu konvertieren. Es gibt mir eine unvergleichliche String-Ausnahme. Irgendeine Idee, wie kann ich gehen? – swateek

+0

@Swat: Die Antwort wurde aktualisiert. –

+0

vielen Dank @Rahul. Ich habe deine Antwort tatsächlich mit Salems Antwort oben kombiniert, um das richtig zu machen. Vielen Dank! :) – swateek

0

können Sie

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

verwenden, um Zeit in nano zu bekommen.

Java Docs

+0

Wie hat es die Zeichenfolge konvertiert, die ich übergeben habe? – swateek

+0

@Swat überprüfe meinen Code :) – nidhin

+0

Ich möchte "Mon May 27 11:46:15 IST 2013" diese Zeichenfolge in Zeitstempel konvertieren. Und finde den Unterschied zwischen ihm und der aktuellen Zeit ... das auch in Sekunden. – swateek

0

Sie DateFormat verwenden können, um zu konvertieren, das Datum zu analysieren (java.text. *):

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") 

Sie werden muss das Gebietsschema ändern, damit es zu deinem eigenen passt (damit bekommst du 10:46:15). Dann können Sie denselben Code verwenden, den Sie in einen Zeitstempel konvertieren müssen.

+0

Danke! Ich habe deine Antwort zusammen mit @Rahul benutzt, um das richtig zu machen. – swateek

8

Am besten man

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; 
Verwandte Themen