当前位置: 首页 > 知识库问答 >
问题:

DateTimeParseException:文本无法解析为Duration[重复]

麻茂材
2023-03-14

我在解析持续时间时遇到问题:

// import java.time.Duration;
...
Duration d = Duration.parse("1h");
...

如果我对文档的理解正确,我应该能够使用1h值,但我得到了以下例外:

DateTimeParseException: Text cannot be parsed to a Duration

我从一些配置中检索1h值,为了简单起见,我省略了其他代码。

我怎样才能解决这个问题?

共有2个答案

慕容宏毅
2023-03-14

根据文件:

字符串以可选符号开头,由ASCII负号或正号表示。如果为负,则整个周期为负。ASCII字母“P”是下一个大写或小写字母。然后有四个部分,每个部分由一个数字和一个后缀组成。这些部分在ASCII中有后缀“D”、“H”、“M”和“S”,表示天、小时、分钟和秒,可以用大写或小写。后缀必须按顺序出现。ASCII字母“T”必须在小时、分钟或秒段第一次出现(如果有)之前出现。四个部分中至少有一个必须出现。。。

您要解析的字符串必须以大写或小写"PT"开头。

小时部分中的字母"H"也可以是大写或小写。

System.out.println(Duration.parse("pt1h"));

输出:

PT1H
长孙星汉
2023-03-14

您使用的格式不正确,请使用下面的-

Duration d = Duration.parse("PT1H");
 类似资料:
  • 我在分析时遇到问题: 如果我对文档的理解正确,我应该能够使用值,但我遇到了以下异常: 我从一些配置中检索< code>1h值,为了简单起见,我省略了其他代码。 我该怎么解决这个问题?

  • 我试图将文本解析为持续时间,如下所示: 但是我得到以下错误, 有人能告诉我我的问题在哪里吗?

  • 问题内容: 我有以下代码将Instant转换为String,然后将其转换回I 它将timestampString打印为: 并未能解析该字符串: 为什么即使我将时间戳转换为相同的格式也无法解析它? 问题答案: 在一天中的小时内使用HH代替hh 您要问的问题是(两次)在格式模式字符串中使用小写字母。您需要从00到23的小时中的大写字母,是从01到12的AM或PM中的小时数。因此出了问题,java.ti

  • 我有以下代码将即时转换为字符串,然后将其转换回I 它将timestampString打印为: 在分析字符串时失败: 为什么即使它与我将时间戳转换为的格式相同,它也无法解析它?

  • 我无法理解为什么当我通过的文本符合格式时,我会得到DateTimeParseException错误。下面是导致该问题的代码: 奇怪的是。每当我查询用户一段时间(让我们以00:02:30为例),它就会完全按照我想要的方式运行。但是当我使用我的方法(从文本文件中提取时间)时,它会出现错误: 线程“main”java.time.format.DateTimeParseException中出现异常:无法分