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?
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.
Sie können den AM / PM-Marker auch mit dem a
-Indikator wie folgt ausgeben:
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.
Tags und Links java long-integer simpledateformat seconds