将用户输入限制为HHMMSS

时间:2017-09-27 02:50:10

标签: java date-formatting

我正在尝试计算时钟的小时 - 分钟,秒 - 秒钟的角度。我弄清楚计算,但我在格式化用户输入时遇到问题。 这就是我想要的......

输入时间:235429 第二小时:176.76度 分秒:152.9度 小时 - 分钟:30.34度

正如您所看到的,我希望将用户输入的格式设置为HHMMSS,但我不知道如何格式化它。你们能告诉我如何格式化用户输入,它可以检测每个两个单独的字符,如HH,MM和SS吗? Ť 非常感谢你的时间。

1 个答案:

答案 0 :(得分:1)

使用Java 8 LocalTimeDateTimeFormatter使用模式"HHmmss"传递给parse()

实施例

String userInput = "235429";

LocalTime time = LocalTime.parse(userInput, DateTimeFormatter.ofPattern("HHmmss"));
System.out.println("Hour  : " + time.getHour());
System.out.println("Minute: " + time.getMinute());
System.out.println("Second: " + time.getSecond());

输出

Hour  : 23
Minute: 54
Second: 29

如果用户提供错误输入,例如236429,它抛出异常:

  

java.time.format.DateTimeParseException:无法解析文本'236429':MinuteOfHour的值无效(有效值0 - 59):64

捕获异常以检测并处理来自用户的无效输入。

try {
    LocalTime time = LocalTime.parse(userInput, DateTimeFormatter.ofPattern("HHmmss"));
} catch (DateTimeParseException e){
    …  // Handle invalid user’s invalid input.
}