2017-12-23 8 views
2

Ich versuche, ein Datum mit Epoch Times Methode zu konvertieren.
mit diesem Code unterFalsche Stunden in Epochzeit umgewandelt

long epoch = 0; 
try { 
    epoch = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("12/11/2017 23:20:23") 
      .getTime(); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 

Es mir die Epoche Zeit gibt: 1513052423

die einmal geben konvertieren: Tuesday 12 December 2017 04:20:23 und nicht 23:20:23:/

+0

'SimpleDateFormat' ist lange überholt und notorisch lästig. Sogar auf Android empfehle ich Ihnen, JSR-310 AKA 'java.time', die moderne Java-API für Datum und Uhrzeit, einen Gedanken zu geben. Es ist so viel schöner, mit Ihnen zu arbeiten und Ihren klareren Code zu geben. Sie können es unter Android über [ThreeTenABP] (https://github.com/JakeWharton/ThreeTenABP) verwenden. –

Antwort

4

Nach documentation Simple ist locale-empfindlich. Überprüfen oder stellen Sie Ihre Zeitzone ein

sdf.setTimeZone(TimeZone.getTimeZone("GMT")); 
+0

Ihr Code ist korrekt. Für die Verwendung sind Gebietsschema und Zeitzone zwei verschiedene Konzepte, die eigentlich nichts miteinander zu tun haben. Auch wenn Sie das Gebietsschema des Formatierers sinnvoll festlegen können, ist dies hier nicht relevant. –

Verwandte Themen