在java8中,无法将文本解析为持续时间

在java8中,无法将文本解析为持续时间,java,Java,我正在尝试将文本解析为持续时间,如下所示: final Duration duration = TimeUtil.parseDuration("1.0:00:00"); 但我得到了以下错误 Text cannot be parsed to a Duration 有人能告诉我我的问题出在哪里吗?如果您使用的是协议缓冲区,请指定一个持续时间,以秒为单位,以纳秒为单位,间隔一个周期。如果持续时间为负数,则该值可能以负号开头(这样,将持续时间添加到某个时间会相对于该时间移到过去)。字符串必须以“

我正在尝试将文本解析为持续时间,如下所示:

  final Duration duration = TimeUtil.parseDuration("1.0:00:00");
但我得到了以下错误

Text cannot be parsed to a Duration

有人能告诉我我的问题出在哪里吗?

如果您使用的是协议缓冲区,请指定一个持续时间,以秒为单位,以纳秒为单位,间隔一个周期。如果持续时间为负数,则该值可能以负号开头(这样,将持续时间添加到某个时间会相对于该时间移到过去)。字符串必须以“s”结尾

您可以在公共git[hub]repo中看到协议缓冲区持续时间的非常简单的定义

考虑到持续时间的类型,我猜它们用于计算自unix纪元以来在内部表示为有符号64位纳秒的日期时间

换句话说,看起来这些是有效的持续时间:

"1s"      // one second forward
"1.0s"    // one second forward
"1.01s"   // one second, 10,000,000 nano seconds forward
"-1.01s"  // one second, 10,000,000 nano seconds backward
"60s"     // one minute forward
"-86400s" // yesterday (one day backward)
          // [assuming no daylight savings changes or leap seconds happened]

协议缓冲区'
TimeUtil.parseDuration
不会给您提供您所说的错误消息,并且与
Duration.parse
完全不同,后者是并且可能会提供此类错误消息。

如果猜测API:

parseDuration(字符串持续时间)
作为参数:

持续时间-“3h”或“2mn”或“7s”或空值

取自
java.lang.Object ninja.utils.TimeUtil
API。它返回秒数


那么
“1.0:00:00”
显然是不可解析的。

您从何处导入
TimeUtil
?它不在。请指定从哪个库中获得的
TimeUtil
from.ooppps抱歉,是的,你是对的,我正在开发一个对我来说完全陌生的系统,显然,他们有自己的自定义时间,不是吗?你能再解释一下最后一句话吗?我能理解的是,他们使用的是iso Duration格式,如P1Y2M10DT2H30M,我不懂,你认为我作为文本提供的持续时间与它不匹配吗?@HamedMinaee我已链接到协议缓冲区的parseDuration和toString函数,以便您可以看到这些函数正在做什么和期望什么。我希望这是关于持续时间是积极的还是消极的最好解释。