2016-04-19 20 views
0

Ich habe TimeStamp Zeit als String 1374160160, die äquivalent ist 07/18/2013.Vom Zeitstempel zum normalen Datum

Wenn es eine Möglichkeit gibt, wie ich diese TimeStamp mit dem Format July 18, 2013 zu Datum konvertieren kann?

Dies ist mein Code-Schnipsel:

try{ 
    String timeStamp = "1374160160"; 
    DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
    Date netDate = (new Date(timeStamp)); 
    return sdf.format(netDate); 
} catch(Exception ex) { 
    return ""; 
} 

Es gibt immer 01/17/1970 warum? Das zweite Problem besteht darin, dass new Date(String) veraltet ist.

Fazit:

Wie normales Datum (July 18, 2013) von Zeit-Stempeln erstellen und die veralteten Methoden vermeiden?

+0

Sollte es 'neues Datum (LONG)' anstelle von 'neuem Datum (STRING)' sein? – Tin

+0

Bitte suchen Sie vor dem Buchen nach Stack Overflow. Alle Teile Ihrer Frage wurden bereits viele Male gestellt und beantwortet. –

Antwort

1

Ihre timeStamp Instanz enthält Sekunden, aber JavaDate Konstruktor erwartet Millisekunden. Via documentation:

ein Date-Objekt Ordnet und initialisiert sie die angegebene Anzahl von Millisekunden seit Beginn der Standard-Basiszeit darstellen, bekannt als „die Epoche“, nämlich 1. Januar 1970, 00:00:00 GMT

So sollten Sie verwenden:

String timeStamp = "1374160160"; 
long timeMillis = Long.valueOf(timeStamp) * 1000; 
Date netDate = new Date(timeMillis); 

statt:

String timeStamp = "1374160160"; 
Date netDate = (new Date(timeStamp)); 
Verwandte Themen