2016-08-31 2 views
0

Ich habe TextView mit der Zeit: HH: mm: ss: ms Zum Beispiel habe ich Zeit: 00: 20: 03: 19. Meine Funktion gibt -9596 Wie konvertiert man diese Zeit in Unix-Zeit? Wo ist der Fehler? Vielen Dank.Get Unix-Zeit von TextView

private long convertStringToUnixTime() throws ParseException { 
    String dateStr = "00:20:03:19"; 
    long unixTime; 

    DateFormat formatter = new SimpleDateFormat("HH:mm:ss:ms"); 
    unixTime = formatter.parse(dateStr).getTime(); 

    unixTime = unixTime/1000; 

    return unixTime; 
} 

Antwort

0

Die Millisekunden sind "S". Und es sind drei. Ihr Format sollte wie "HH: mm: ss: SSS" sein.

Weitere Informationen hier: SimpleDateFormat

2

Das gibt 22803019 -, die die Millisekunden seit Epoche ist.

new SimpleDateFormat("HH:mm:ss:SSS").parse("00:20:03:19").getTime() 

Sie hat nicht gesagt, ob Sie Sekunden oder Millisekunden wollte, aber da Sie Millisekunden parsen, ich denke, Sie die später wollen, so dass keine Notwendigkeit zu teilen.

Alles in allem könnte Ihre Methode viel kürzer sein, wenn Sie den String als Parameter

private long convertStringToUnixTime(String dateStr) throws ParseException { 
    return new SimpleDateFormat("HH:mm:ss:SSS").parse(dateStr).getTime(); 
} 
geben
Verwandte Themen