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

在java8中使用单个DateTimeFormatter解析HH:mm:ss和H:mm:ss for LocalTime

叶煌
2023-03-14

我正在尝试使用<code>LocalTime解析08:24:55(HH:mm:ss)和8:24:50(H:mm:ss)。java 8中的parse()方法。以下代码成功执行并打印08:24:55:

LocalTime time=LocalTime.parse("08:24:55", DateTimeFormatter.ofPattern("HH:mm:ss"));
System.out.println(time);

但同一组代码在输入8:24:55时失败,并抛出错误:

线程“main”java.time.format中出现异常。DateTimeParseException:无法在索引0处分析文本“8:24:55”

有什么建议可以处理这两种情况吗?

共有2个答案

姬欣怡
2023-03-14

您可以通过以下方式选择一些“时间”:

 DateTimeFormatter.ofPattern("H[H]:mm:ss")
窦彦君
2023-03-14

在您的模式中仅使用一个< code>H:

LocalTime time= LocalTime.parse("08:24:55", DateTimeFormatter.ofPattern("H:mm:ss"));

输出:

08:24:55

 类似资料:
  • 我使用SimpleDateFormat来格式化或验证日期,但我想通过使用java 8 DateTimeFormatter使其线程安全。我在实现某些要求时遇到了麻烦。 我的应用程序将只接受三种类型的格式。“yyyy-MM-dd”, “yyyy-MM”, “yyyy” 以下是输入和预期输出: > 我如何在java 8 DateTimeForma中实现相同的结果tter? /* java 8日期时间格式

  • 错误: 线程“main”java.time.format.dateTimeParseException:无法解析文本“Tue 21 May”:无法从TemporalAccessor获取LocalDate:{DayOfWeek=2,DayOfMonth=21,MonthOfYear=5},类型为java.time.format.dateTimeFormatter.createError(dateTi

  • 使用DateTimeFormatter仅解析LocalTime变量的“Time of Day”时出现问题。尝试了几种不同的格式,但没有看到我缺少了什么(我在想,既然我使用了DateTimeFormatter,我就需要一个date组件,但我只使用了LocalDate就没问题了,而且文档说它支持LocalTime)。 提前感谢任何帮助/链接,以确定我的错误导致异常。 使用此SSCCE复制: ...我得

  • 但是当我使用Java8时, 它抛出 java.time.format.DateTimeParseException:无法分析文本“201510”:无法从TemporalAccessor获取LocalDate:{Year=2015,MontHofYear=10},ISO类型为java.time.Format.Parsed

  • 因此,我希望这段代码能够在新的Java8date/time包下工作,因为它所做的只是将给定的ZonedDateTime转换成字符串,然后使用相同的内置DateTimeFormatter实例(ISO_INSTANT)返回: 但显然不是: 我已经看到了这个条目,但它对我没有帮助,因为a需要一个ZonedDateTime对象,而不是本地对象,还因为我已经安装了8U20:无法使用DateTimeForma

  • 我有一颗豆子和一条小溪 并且希望对返回TokenBag的另一个对象流的流应用一些中间操作。在这个例子中必须有两个:("a",3),("b",3)和("a",2)。 请把它看作一个非常简单的例子。在现实中,会有比仅仅计算一行中相同的值更复杂的逻辑。事实上,我试图设计一个简单的解析器,它接受一个令牌流并返回一个对象流。 另外,请注意,它必须保持为一个流(没有中间累加),而且在本例中,它必须在一行中真正