Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JodaTime期间:打印第一个非零元素_Java_Android_Jodatime - Fatal编程技术网

Java JodaTime期间:打印第一个非零元素

Java JodaTime期间:打印第一个非零元素,java,android,jodatime,Java,Android,Jodatime,这个问题困扰了我一段时间。我需要计算两个不同日期时间之间的时间,然后只显示该时间段的最大时间单位。例如,如果两个对象之间的时间是4h 55m 40s,我只想打印4h。我可以编写一个方法来迭代Period类的getValues()方法,但是数组迭代既昂贵又缓慢。有没有现成的方法可以做到这一点,这样我就不会重新发明轮子了?谢谢 编辑:以下是我的periodformatterbuilder方法: private PeriodFormatter createFormatter() { Perio

这个问题困扰了我一段时间。我需要计算两个不同日期时间之间的时间,然后只显示该时间段的最大时间单位。例如,如果两个对象之间的时间是4h 55m 40s,我只想打印4h。我可以编写一个方法来迭代Period类的getValues()方法,但是数组迭代既昂贵又缓慢。有没有现成的方法可以做到这一点,这样我就不会重新发明轮子了?谢谢

编辑:以下是我的periodformatterbuilder方法:

private PeriodFormatter createFormatter() {
    PeriodFormatter formatter = new PeriodFormatterBuilder()
    .printZeroNever()
    .appendDays()
    .appendSuffix("d")
    .appendSeparator(" , ")
    .appendHours()
    .appendSuffix("h")
    .appendSeparator(" , ")
    .appendMinutes()
    .appendSuffix("m")
    .appendSeparator(" , ")
    .appendSeconds()
    .appendSuffix("s")
    .toFormatter();
    return formatter;
}

如果天数不是0,我似乎不知道如何让它在几个小时内不打印任何内容

我认为您需要PeriodFormatterBuilder,特别是
printZero*
方法。我会使用哪一种?所有3个在API中都有相同的描述,方法本身的名称解释不了多少。您的格式化程序似乎适合我,打印天数,但如果打印天数,则不会打印小时!=抱歉,我本该好好解释一下。我想要它做的是如果(天!=0),只打印天。如果(小时数!=0),则仅打印小时数。因此,仅打印最大的持续时间。使用格式化程序是否可以实现这一点?