Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

java

jodatime

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?

like image 975
LuxuryMode Avatar asked Sep 22 '11 17:09

LuxuryMode


1 Answers

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.

like image 133
Jon Skeet Avatar answered Sep 19 '22 00:09

Jon Skeet