我已经习惯了Java 8提供的LocalTime,用于在以下代码中将时间从1-24格式格式化为1-12格式。
String localTime = LocalTime.parse("08:59:00", DateTimeFormatter.ofPattern("HH:mm:ss"))
.format(DateTimeFormatter.ofPattern("hh:mm:ss a"));
现在使用以下代码,我有1-12小时的格式
LocalTime localTime1 = LocalTime.parse(localTime, DateTimeFormatter.ofPattern("hh:mm:ss a"));
我的问题是“是否有任何由LocalTime提供的API方法”来获取给定时间的赌注或帖子。或者如何使用干净的API,而不是使用切片和切割来操作字符串。
我不确定这个的优雅,但是如果你想获得一个表示它是AM还是PM的布尔值,你可以这样做:
boolean isPM = localTime.getHour() >= 12;
如果时间是AM而isPM
为PM,则此变量false
将为true
。
是否有LocalTime提供的API方法
该方法是get
。我们需要将它与ChronoField.AMPM_OF_DAY
枚举常量结合使用。它将meridiem编入0并将meridiem编入1。
int amPmOf1159 = LocalTime.of(11, 59).get(ChronoField.AMPM_OF_DAY);
System.out.println(amPmOf1159);
int amPmOf1200 = LocalTime.of(12, 0).get(ChronoField.AMPM_OF_DAY);
System.out.println(amPmOf1200);
输出是:
0 1