【发布时间】:2019-03-03 16:05:06
【问题描述】:
我在字符串中有不同的时间格式(来自视频播放器计数器)。 例如:
03:45 -> 3 munutes, 45 seconds
1:03:45 -> 1 hour, 3 munutes, 45 seconds
123:03:45 -> 123 hours, 3 munutes, 45 seconds
如何使用 LocalTime 库解析所有这些格式?
如果我使用这样的代码:
LocalTime.parse(time, DateTimeFormatter.ofPattern("[H[H]:]mm:ss"));
它适用于“1:03:45”或“11:03:45”,但对于“03:55”我有例外
java.time.format.DateTimeParseException: Text '03:55' could not be parsed at index 5
【问题讨论】:
-
可能只是一个旁注:您为您的值使用了错误的数据类型。
Duration是更适合这些值的类型。例如,您不能将123:03:45存储在localTime对象中(123在几小时内超出范围) -
123:03:45 是持续时间而不是本地时间。您可以直接拆分 :'s 并提取小时、分钟、秒组件。
-
嗨@OleV.V。我不认为 OP 要求
HH:mm:ss但mm:ss和HH:mm:ss的任何格式,我看不到任何答案可以回答这个特定问题 -
感谢您的帮助!
标签: java datetime time localtime