我试图将文本解析为持续时间,如下所示:
final Duration duration = TimeUtil.parseDuration("1.0:00:00");
但是我得到以下错误,
Text cannot be parsed to a Duration
有人能告诉我我的问题在哪里吗?
如果猜测API:
parseDuration(字符串持续时间)
作为参数:
持续时间-“3h”或“2mn”或“7s”或null。
摘自java。郎。对象忍者。utils。TimeUtilAPI。它返回秒数。
那么"1.0:00:00"
显然不是要解析的。
如果您使用协议缓冲区的TimeUtil
,您将指定一个持续时间,秒与纳秒之间用一个周期隔开。如果持续时间为负数,该值可能以减号开头(因此将持续时间添加到时间将相对于时间移动到过去)。字符串必须以“s”结尾。
您可以在公共git[hub]repo的TimeUtil中看到协议缓冲区持续时间的非常简单的解析和toString。
考虑到持续时间的类型,我猜想它们用于计算自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]
Protocol Buffers的TimeUtil.parseDuration
不会给你你说你得到的错误消息,而且一点也不像Duration.parse
,后者记录得更清楚,可能会给你那种错误消息。
我在分析时遇到问题: 如果我对文档的理解正确,我应该能够使用值,但我遇到了以下异常: 我从一些配置中检索< code>1h值,为了简单起见,我省略了其他代码。 我该怎么解决这个问题?
我无法理解为什么当我通过的文本符合格式时,我会得到DateTimeParseException错误。下面是导致该问题的代码: 奇怪的是。每当我查询用户一段时间(让我们以00:02:30为例),它就会完全按照我想要的方式运行。但是当我使用我的方法(从文本文件中提取时间)时,它会出现错误: 线程“main”java.time.format.DateTimeParseException中出现异常:无法分
我在解析持续时间时遇到问题: 如果我对文档的理解正确,我应该能够使用1h值,但我得到了以下例外: 我从一些配置中检索1h值,为了简单起见,我省略了其他代码。 我怎样才能解决这个问题?
尝试在我基于Maven的项目的基于Groovy的单元测试中使用groovy.text.XmlTemplateEngine,并将gmaven插件配置如下 我的命令行build mvn clean install无法编译我的简单Groovy单元测试文件,并显示错误消息 [错误]file:/User/.../my-service/src/test/groovy/myapp/MyApplicationes
我使用Java8来解析日期并找出两个日期之间的差异。 以下是我的片段: 当我运行时,我得到了错误: java.time.format.DateTimeParseException:无法在索引3解析文本