如何将给定时间(字符串)转换为LocalTime?

SVC*_*994 2 java datetime-parsing java-time

我将要求用户输入一个特定时间:10 AM、12:30PM、2:47PM、1:09AM、5PM,等等。我将使用a Scanner来获取用户的输入。

如何将其解析/转换StringLocalTime对象?Java中是否有任何内置函数可以使我做到这一点?

小智 5

只需使用java.time.format.DateTimeFormatter

DateTimeFormatter parser = DateTimeFormatter.ofPattern("h[:mm]a");
LocalTime localTime = LocalTime.parse("10AM", parser);
Run Code Online (Sandbox Code Playgroud)

解释模式:

  • h:上午/下午的时间(从1到12),以1或2位数字表示
  • []:可选部分的定界符(其中的所有内容都是可选的)
  • :mm:一个:字符,后跟2位数字的分钟
  • a:AM / PM的代号

这适用于所有输入。