LuxuryMode
LuxuryMode

Reputation: 33771

Joda - remove seconds, milliseconds from PeriodFormat.getDefault().print()?

I have a method like this:

public static String getFormattedDateDifference(DateTime startDate, DateTime endDate) {
        Period p = new Period(startDate, endDate);
        return PeriodFormat.getDefault().print(p);
    }

I'd like to chop off the seconds and milliseconds from printing. How can I do that?

Upvotes: 6

Views: 4424

Answers (1)

Jon Skeet
Jon Skeet

Reputation: 1503140

If you only want it down to minutes, why not just specify the right period type to start with?

private static final PeriodType PERIOD_TO_MINUTES = 
     PeriodType.standard().withSecondsRemoved().withMillisRemoved();

public static String getFormattedDateDifference(DateTime startDate,
                                                DateTime endDate) {

    Period p = new Period(startDate, endDate, PERIOD_TO_MINUTES);
    return PeriodFormat.getDefault().print(p);
}

I expect that to format in the way you want.

Note that if these are really meant to be dates, you should probably use PeriodType.yearMonthDay() and specify the values as LocalDate. DateTime should be used for date and time values, not just dates.

Upvotes: 10

Related Questions