Unerwarteter Unterschied in den analysierten Daten mit dem Format JJJJ-MM-TT hh: mm: ss

8

Ich habe den folgenden Java-Code ausgeführt, um den Zeitunterschied zu ermitteln.

%Vor%

Die Ausgabe des obigen Programms ist.,

%Vor%

sein Rückgabewert minus Wert beim Ausführen von "checkTimeDifference("2013-10-30 10:15:00", "2013-10-30 12:15:00");"

warum seine Rückkehr minus Wert und wie man es löst?

    
RVG 30.10.2013, 07:12
quelle

2 Antworten

9

Das ist das Problem:

%Vor%

Das hh bedeutet hier "12 Stunden Stunde", also 12 bedeutet Mitternacht, es sei denn, es gibt etwas, das anzeigt, dass es 12 Uhr sein soll. Ihr Wert von 13 funktioniert nur, weil der Parser in einem milden Modus ist. Sie möchten:

%Vor%

Ich rate Ihnen auch dringend, Joda Time für diese Aufgabe zu verwenden, da es ein Los ist einfacher.

    
Jon Skeet 30.10.2013, 07:14
quelle
3

Durch das Ändern des Musters SimpleDateFormat in yyyy-MM-dd HH:mm:ss werden die Probleme behoben.

Dies geschieht, weil yyyy-MM-dd hh:mm:ss im Fall 12 als 0 ausgewertet wird.

    
Dan D. 30.10.2013 07:16
quelle

Tags und Links