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

Nit*_*ngh 5 java datetime java-8

我试图使用java 8中的方法解析08:24:55(HH:mm:ss)8:24:55(H:mm:ss)LocalTime.parse().下面代码成功执行并打印08:24:55:

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

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

线程"main"中的异常java.time.format.DateTimeParseException:无法在索引0处解析文本"8:24:55"

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

Jua*_*oza 6

H在你的模式中只使用一个:

LocalTime time= LocalTime.parse("08:24:55", DateTimeFormatter.ofPattern("H:mm:ss"));
Run Code Online (Sandbox Code Playgroud)

输出:

8时24分55秒