3

我正在使用 Period 来获取两个 DateTimes 之间的时间差。

 Period p = new Period(startDate, endDate,
                PeriodType.standard().withSecondsRemoved().withMillisRemoved());

        return PeriodFormat.getDefault().print(p);

这给了我“1小时30分钟”的形式。

我怎样才能得到像“1:30”或“:15”这样的东西?

我想我可以做类似的事情:

public static int getHoursDifference(DateTime startDate, DateTime endDate) {
        Period p = new Period(startDate, endDate);
        return p.getHours();
    }

同样持续几分钟,然后连接......?

4

1 回答 1

4

您可以使用PeriodFormatterBuilder

类似于以下内容:

PeriodFormatter formatter = new PeriodFormatterBuilder()
    .minimumPrintedDigits(2)
    .printZeroAlways()
    .appendHours()
    .appendSeparator(":")
    .appendMinutes()
    .toFormatter();

会给你一个格式化程序,然后你可以使用它而不是你当前使用的默认格式化程序,我认为它会给你一些类似于你正在寻找的格式的东西。如果您对它们感兴趣,当然可以附加其他字段。

并更改或跳过对的调用,minimumPrintedDigits如果printZeroAlways它为零,则可能使其不显示小时部分和/或在没有前导零的情况下显示它。

于 2012-05-10T21:52:52.547 回答