我正在尝试像这样创建Java类LocalTime
的对象:
LocalTime beginning = LocalTime.of(int hours, int minutes);
我的问题是我想我的用户可以按以下格式输入时间:HH:MM 但是,当像14:00这样的输入作为String时,我将“:”替换为“”。
然后我说:
hours = Integer.parseInt(eingabe.substring(0, 2));
minutes = Integer.parseInt(eingabe.substring(2));
但现在分钟是0而不是00就像我想要的那样。
我做了一些研究,发现像String.format("%02d", minutes)
这样的东西,但LocalTime.of()
的参数需要是整数。
答案 0 :(得分:2)
如果您有14:00
之类的输入,则无需进行手动格式化,而是可以使用java.time.format.DateTimeFormatter
:
String input = "14:00";
DateTimeFormatter simpleTime = DateTimeFormatter.ofPattern("HH:mm");
LocalTime localtime = LocalTime.parse(input, simpleTime);
然而,您的原始问题不是一个问题。 “14:00”中的“00”只是格式化,并不意味着分钟的整数值为00
:它是0
;它只是显示为“00”,以减少观看时间的人的混淆(例如,很难区分14:1
与14:10
等。)
答案 1 :(得分:0)
你不能得到一个双零的int,因为它是一个整数值,获得双零的唯一方法是将LocalTime格式化为String。有不同的方法来实现这一点,它取决于您正在使用的Date API。看到你的类我假设你正在使用JodaTime,所以我的例子将集中在这个API上,因此,为了格式化你的对象,你可以这样做:
public static String toTimeString(LocalTime source) {
try {
return source.toString("HH.mm");
} catch (Exception ignored) {
}
return null;
}