2012-04-02 8 views
1

Ich gebe Daten aus einer sqlite3-Datenbank zurück, die einige andere geschrieben haben. Ich versuche, das Datum und die Uhrzeit abzurufen. Um es in der Datenbank zu speichern, konvertierte ich das Datum und die Uhrzeit in ein int. mit dieser LinieProblem beim Zurückwandeln von int in DateTime

int currentTime=(int) ((newTime).toMillis(true)/1000); 

Ich bin in der Lage, die Daten als int abrufen, aber nicht herausfinden kann, wie die Zahl wieder in ein Datum und Zeit zu konvertieren. Momentan gibt die DB int 13333380180 zurück, ich versuche, sie in das heutige Datum und die heutige Zeit zu konvertieren.

Antwort

4
long yourmilliseconds = 13333380180; 
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm"); 

Date resultdate = new Date(yourmilliseconds); 
System.out.println(sdf.format(resultdate)); 

Verwenden Sie den obigen Code

+0

Sie müssen die Sekunden mit 1000 multipliziert, weil current toMillis von 1000. – phlogratos

+0

ja geteilt ist, aber es scheint er bereits –

+0

new Date (13333380180) ergibt Do 4. Juni 08.43.00 CET 1970 neues Datum Millisekunden hatte (13333380180000) Ergebnisse in Wed Jul 08 14:43:00 MESSE 2392, sehen beide sehr seltsam aus. – phlogratos

0

Die Anzahl Sie erhalten, ist die Anzahl von Millisekunden zu konvertieren, die seit dem 1. Januar vergangen, 1970. Es ist ein Standard, konsistente Art und Weise ein Datum & Zeit auf der Darstellung eine Reihe von Plattformen.

Obwohl der Wert eine Ganzzahl in SQLite ist, können SQLite-Ganzzahlen bis zu 64 Bit sein. Daher sollte der Wert, der an Sie zurückgegeben wird, in Java als long behandelt werden. Sie können es auf einfache Art in ein Java Date Objekt konvertieren: new Date(currentTime).