मुझे जोडा टाइम की अवधिफॉर्मेटर का उपयोग करने में परेशानी हो रही है। मैं चाहता हूं कि कोई दिन, घंटों, मिनट और सेकंड की रिपोर्ट करे, लेकिन मेरा प्रयास सप्ताहों में लपेटने लगता है। मुझे अलग-अलग क्या करना चाहिए?मेरा अवधिफॉर्मेटर व्यवहार नहीं कर रहा है जैसा कि मैं उम्मीद करता हूं - मैंने क्या गलत किया है?
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)));
}
}
संपादित करें: मुझे लगता है कि मैं देख सकता हूँ क्यों इस काम कर रहा है नहीं - यानी कि फ़ॉर्मेटर बस अवधि के विभिन्न मूल्यों प्रिंट, और काल के बाद से, दिनों के लिए मूल्य मेरी समस्या पर हफ्तों के लिए एक मूल्य की दुकान अवधि वास्तव में 0 है। लेकिन मुझे अभी भी ऐसा करने का एक अच्छा तरीका चाहिए ...
आप सप्ताहों के लिए एक विभाजक गायब थे। – ripper234