Differenz von zwei Joda LocalDateTimes

8

Ich habe 2 Joda LocalDateTime -Objekte und muss eine 3. erzeugen, die den Unterschied zwischen ihnen darstellt:

%Vor%

Der einzige Weg, den ich mir vorstellen kann, ist, jedes Datums- / Zeitfeld sorgfältig durchzugehen und die entsprechende Operation minus durchzuführen:

%Vor%

Das Endergebnis wäre einfach die Methode diff toString() aufzurufen und etwas Bedeutungsvolles zu erhalten. Wenn beispielsweise start.toString() 2012/02 / 08T15: 05: 00 produziert und end.toString() 2012/02 / 08T16: 00: 00, dann wäre diff.toString() die Differenz (55 Minuten) und könnte wie 2012/2012 aussehen. 02 / 08T00: 55: 00.

Und wenn das ein schrecklicher Missbrauch von LocalDateTime ist, dann muss ich nur wissen, wie ich den Zeitunterschied zwischen den beiden nehme und diesen Unterschied in ein leicht lesbares (menschenfreundliches) Format bringen kann. p>

Vielen Dank im Voraus!

    
IAmYourFaja 16.02.2012, 19:55
quelle

4 Antworten

14

Sie können dafür die Klasse org.joda.time.Period verwenden. Lesen Sie mehr über org.joda.time.Period

Beispiel:

%Vor%     
Ilya 16.02.2012, 20:05
quelle
8

Dauer ist in einigen Fällen besser. Sie können eine "zeitzonenunabhängige" Dauer für die Verwendung mit LocalDateTimes (in lokaler Zeitleiste) durch diesen Trick erhalten:

%Vor%     
kbec 24.10.2013 16:48
quelle
1

Ich habe eine Problemumgehung gefunden, indem ich folgende Schritte verwendet habe:

  1. Nimm zwei LocalDateTime-Objekte als Start und Ende
  2. Konvertiere beide in ein Instant-Objekt wie start.toInstant(ZoneOffset.UTC);
  3. Berechne die Dauer mit Duration.between(instant t1, instant t2)
  4. Konvertieren Sie es mithilfe verschiedener Konvertierungsmethoden in Nanosekunden oder Millisekunden oder Sekunden. Nanosekunden können als Duration.toNanos() berechnet werden

Ich habe unten ein vollständiges Beispiel angegeben.

%Vor%     
Sheikh_Irshad 02.01.2015 17:42
quelle
0
%Vor%

Von Ссылка

    
Cícero Moura 24.04.2015 19:27
quelle

Tags und Links