Ich habe zwei Objekte von DateTime , die die Dauer ihrer Differenz ermitteln müssen.
Ich habe den folgenden Code, bin mir aber nicht sicher, wie ich ihn fortsetzen soll, um zu den erwarteten Ergebnissen zu gelangen:
Beispiel
11/03/14 09:30:58
11/03/14 09:33:43
elapsed time is 02 minutes and 45 seconds
-----------------------------------------------------
11/03/14 09:30:58
11/03/15 09:30:58
elapsed time is a day
-----------------------------------------------------
11/03/14 09:30:58
11/03/16 09:30:58
elapsed time is two days
-----------------------------------------------------
11/03/14 09:30:58
11/03/16 09:35:58
elapsed time is two days and 05 mintues
Code
String dateStart = "11/03/14 09:29:58";
String dateStop = "11/03/14 09:33:43";
Custom date format
SimpleDateFormat format = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
} catch (ParseException e) {
e.printStackTrace();
}
// Get msec from each, and subtract.
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000);
System.out.println("Time in seconds: " + diffSeconds + " seconds.");
System.out.println("Time in minutes: " + diffMinutes + " minutes.");
System.out.println("Time in hours: " + diffHours + " hours.");
java
date-arithmetic
J888
quelle
quelle
Antworten:
Versuche Folgendes
quelle
Die Datumsdifferenzkonvertierung könnte mit der in Java integrierten Klasse TimeUnit besser gehandhabt werden . Es bietet Dienstprogrammmethoden, um dies zu tun:
quelle
Verwenden Sie die Joda-Time- Bibliothek
Joda Time hat ein Konzept des Zeitintervalls:
Ein weiteres Beispiel Datumsunterschied
Noch ein Link
oder mit Java-8 (das Joda-Time-Konzepte integriert hat)
quelle
So kann das Problem in Java 8 gelöst werden, genau wie die Antwort von shamimz.
Quelle: http://docs.oracle.com/javase/tutorial/datetime/iso/period.html
Der Code erzeugt eine Ausgabe ähnlich der folgenden:
Wir müssen LocalDateTime http://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html verwenden , um Unterschiede zwischen Stunden, Minuten und Sekunden zu erhalten.
quelle
quelle
Sie können eine Methode wie erstellen
Diese Methode gibt die Anzahl der Tage zwischen den beiden Tagen zurück.
quelle
Wie Michael Borgwardt in seiner Antwort hier schreibt :
quelle
In Java 8 können Sie von machen
DateTimeFormatter
,Duration
undLocalDateTime
. Hier ist ein Beispiel:quelle
Es hat funktioniert, ich kann es versuchen, hoffe, es wird hilfreich sein. Lassen Sie mich wissen, wenn Sie Bedenken haben.
quelle
Dies ist der Code:
und das raus ist:
quelle
In Bezug auf Shamims Antwort-Update handelt es sich hier um eine Methode, die die Aufgabe ohne Verwendung einer Bibliothek eines Drittanbieters ausführt. Kopieren Sie einfach die Methode und verwenden Sie
quelle
Dies ist ein Programm, das ich geschrieben habe und das die Anzahl der Tage zwischen zwei Daten ermittelt (hier keine Zeit).
http://pastebin.com/HRsjTtUf
quelle
Ich habe das ähnliche Problem kürzlich mit einer einfachen Methode gelöst.
Und wie erwartet druckt es :
7 days ago
.quelle
So berechnen Sie die Differenz zwischen zwei Daten in Java
quelle