Ich habe Probleme mit Joda Time PeriodFormatter. Ich will, dass man Tage, Stunden, Minuten und Sekunden meldet, aber mein Versuch scheint Wochen zu dauern. Was soll ich anders machen?Mein PeriodFormatter verhält sich nicht wie erwartet - was habe ich falsch gemacht?
import org.joda.time.DateTime;
import org.joda.time.Period;
import org.joda.time.format.PeriodFormatter;
import org.joda.time.format.PeriodFormatterBuilder;
public class Problems {
public static void main(String[] args) {
PeriodFormatter formatter = new PeriodFormatterBuilder()
.printZeroNever()
.appendDays()
.appendSuffix(" day", " days")
.appendSeparator(", ")
.appendHours()
.appendSuffix(" hour", " hours")
.appendSeparator(", ")
.appendMinutes()
.appendSuffix(" minute", " minutes")
.appendSeparator(", ")
.appendSeconds()
.appendSuffix(" second", " seconds")
.toFormatter();
DateTime now = new DateTime();
DateTime justUnderAWeekAgo = now.minusDays(7).plusMinutes(1);
DateTime justOverAWeekAgo = now.minusDays(7).minusMinutes(1);
System.out.println(now);
System.out.println(justUnderAWeekAgo);
System.out.println(justOverAWeekAgo);
// I am happy with the following:
System.out.println(
formatter.print(new Period(justUnderAWeekAgo, now)));
// But not with this (outputs "1 minute" but I want "7 days, 1 minute"):
System.out.println(
formatter.print(new Period(justOverAWeekAgo, now)));
}
}
EDIT: ich sehe ich denke, warum dies nicht funktioniert - das heißt, dass die Forma nur die verschiedenen Werte der Periode druckt, und seit Perioden seit Wochen einen Wert speichern, den Wert für Tage auf meinem Problem Zeitraum ist in der Tat 0. Aber ich brauche noch eine gute Möglichkeit, dies zu tun ...
Sie haben einen Separator für die Wochen - hinzugefügt. – ripper234