问题 JodaTime:打印周期为几小时?


有没有办法在JodaTime中创建一个PeriodFormatter,它可以打印一段时间,比如2小时4小时4分钟52小时4分钟?


13030
2018-05-23 08:28


起源



答案:


我相信你可以用 Period.normalizedStandard 指定一个 PeriodType 只包含几小时和几分钟。样品:

import org.joda.time.*;
import org.joda.time.format.*;

public class Test {
    public static void main(String[] args) {
        // 2 days, 4 hours, 4 minutes
        Period period = new Period(0, 0, 0, 2, 4, 4, 0, 0);

        // Actually we're fine with seconds etc as well
        Period hoursAndMinutes = period.normalizedStandard(PeriodType.time());

        PeriodFormatter formatter = new PeriodFormatterBuilder()
            .appendHours()
            .appendSuffix(" hour", " hours")
            .appendMinutes()
            .appendSuffix(" minute", " minutes")
            .toFormatter();
        System.out.println(formatter.print(hoursAndMinutes));
    }
}

14
2018-05-23 08:33



大!正是我一直在寻找的东西。非常感谢!缺少的链接是“period.normalizedStandard(PeriodType.time())” - t3chris


答案:


我相信你可以用 Period.normalizedStandard 指定一个 PeriodType 只包含几小时和几分钟。样品:

import org.joda.time.*;
import org.joda.time.format.*;

public class Test {
    public static void main(String[] args) {
        // 2 days, 4 hours, 4 minutes
        Period period = new Period(0, 0, 0, 2, 4, 4, 0, 0);

        // Actually we're fine with seconds etc as well
        Period hoursAndMinutes = period.normalizedStandard(PeriodType.time());

        PeriodFormatter formatter = new PeriodFormatterBuilder()
            .appendHours()
            .appendSuffix(" hour", " hours")
            .appendMinutes()
            .appendSuffix(" minute", " minutes")
            .toFormatter();
        System.out.println(formatter.print(hoursAndMinutes));
    }
}

14
2018-05-23 08:33



大!正是我一直在寻找的东西。非常感谢!缺少的链接是“period.normalizedStandard(PeriodType.time())” - t3chris