Ich versuche, die Unterschiede zwischen diesen Zeitpunkten zu berechnen, wie Stunden, Minuten vor Monaten, ...joda Zeit period.getMonths() immer 0
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
"dd/M/yyyy HH:mm:ss");
Date now = null;
try {
now = simpleDateFormat.parse(simpleDateFormat.format(new Date()));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Date time = null;
try {
time = simpleDateFormat.parse(simpleDateFormat.format(timestamp));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Interval interval = new Interval(time.getTime(), now.getTime());
Period period = interval.toPeriod();
Integer s = period.getSeconds();
Integer m = period.getMinutes();
Integer h = period.getHours();
Integer days = period.getDays();
Integer mo = period.getMonths();
Integer y = period.getYears();
Integer mo = period.getMonths();
ist immer Null
i/p=> now =Tue Oct 18 12:15:50 IST 2016
time=Mon Sep 26 14:38:36 IST 2016
o/p=> s=14
m=37
h=21
days=0
mo=0
y=0
Ich versuchte auch LocalDate
und DateTime
aber hatte das gleiche Problem.
Was ist der Sinn von 'simpleDateFormat.parse (simpleDateFormat.format (x))'? – Andreas
Ihre Daten liegen weniger als einen Monat auseinander, daher überrascht es nicht, dass Sie monatelang "0" bekommen. Tage sollten jedoch nicht Null sein. Wenn Sie auf Java 8 sind, gibt es eine neue eingebaute Datum/Zeit-Bibliothek (von dem Typ, der JodaTime gemacht hat), der einen neuen Formatierer/Parser enthält. –
Sie erhalten 0 Tage, weil es 3 Wochen ist. 'period.getWeeks()' returns 3. Sie könnten dies auf die gleiche Weise herausgefunden haben, indem ich einfach den Punkt drucke: 'P3WT21H37M14S' – Andreas