我正在尝试计算时钟的小时 - 分钟,秒 - 秒钟的角度。我弄清楚计算,但我在格式化用户输入时遇到问题。 这就是我想要的......
输入时间:235429 第二小时:176.76度 分秒:152.9度 小时 - 分钟:30.34度
正如您所看到的,我希望将用户输入的格式设置为HHMMSS,但我不知道如何格式化它。你们能告诉我如何格式化用户输入,它可以检测每个两个单独的字符,如HH,MM和SS吗? Ť 非常感谢你的时间。
答案 0 :(得分:1)
使用Java 8 LocalTime
,DateTimeFormatter
使用模式"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.
}