Erhalte zwei gleiche Daten von SimpleDateFormat in Java

8

Ich habe dieses Snippet gemacht, um mein Problem zu zeigen:

%Vor%

date1 und date2 werden in Sekunden ausgedrückt, also erwarte ich zwei verschiedene Daten in der Ausgabe, aber die Daten werden gleich gedruckt. Ich habe in diesem Online-Tool nachgeschaut , und wie Sie sehen können, beziehen sich die Daten auf zwei verschiedene Tage.

Wie kann ich das lösen?

    
OiRc 07.09.2015, 13:05
quelle

2 Antworten

8

Der Unterschied zwischen Ihren beiden Zeitstempeln ist genau 12 Stunden.

Der h Bezeichner in SimpleDateFormat formatiert die Stunden in AM / PM (1-12), so dass Sie den tatsächlichen Unterschied nicht ausgeben: Das Datum wurde von AM auf PM verschoben.

Versuchen Sie es mit dem Bezeichner k oder H , der die Stunde in Tag als (1-24) oder (0-23) formatiert.

%Vor%

Sie können den AM / PM-Marker auch mit dem a -Indikator wie folgt ausgeben:

%Vor%     
Tunaki 07.09.2015, 13:17
quelle
4

Dies liegt daran, dass Ihre Daten 12 Stunden und Sie den Kleinbuchstaben 'h' für die Stundenformatierung verwenden. Die Daten sind 1 Uhr morgens und 1 Uhr nachmittags. Um dies in Ihrer Ausgabe zu sehen, verwenden Sie "H" in Großbuchstaben oder fügen Sie "a" zum Format für die Markierung "am / pm" hinzu.

    
Bernhard 07.09.2015 13:17
quelle