【问题标题】:Parse clock time in java 8在 java 8 中解析时钟时间
【发布时间】:2017-02-13 16:10:24
【问题描述】:

我想知道在 Java 8 中是否可以解析时钟时间时:分:秒?

例如

final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
final String str = "12:22:10";
final LocalDateTime dateTime = LocalDateTime.parse(str, formatter);

我试过但得到这个异常:

Exception in thread "main" java.time.format.DateTimeParseException: Text '12:22:10' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 12:22:10 of type java.time.format.Parsed

【问题讨论】:

  • @Diti 不要认为这是同一个问题。您提供的链接正在解析没有时间的裸日期。我的问题是解析没有日期的裸时间。
  • 从根本上说,这是同一个问题:您尝试解析为LocalDateTime,但您没有日期,那么应该解析哪个日期?改为解析为LocalTime,这样就可以了。
  • @Tunaki@Diti 感谢您的澄清,这行得通!

标签: parsing datetime java-8 java-time


【解决方案1】:

LocalTime.parse

由于您只有时间使用LocalTime 类。无需在您的情况下定义格式模式。

String str = "12:22:10";
LocalTime time = LocalTime.parse(str);

查看代码run live at IdeOne.com

请参阅Oracle Tutorial 了解更多信息。

【讨论】:

  • 因为是标准格式,所以直接使用LocalTime.parse(str);即可。
  • 仅供参考,请参阅我制作的比较各种日期时间类型的图表,包括 LocalTime: i.stack.imgur.com/WyAl2.png
【解决方案2】:

LocalTime.parse("04:17");

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 2017-09-26
    • 1970-01-01
    • 2021-07-17
    • 2021-11-05
    • 2015-01-06
    • 2017-06-29
    • 2013-11-13
    相关资源
    最近更新 更多