我已经习惯了 Java 8 提供的 LocalTime,用于在以下代码中将时间从 1-24 格式格式化为 1-12 格式。
String localTime = LocalTime.p("08:59:00", DateTimeFormatter.ofPattern("HH:mm:ss"))
.format(DateTimeFormatter.ofPattern("hh:mm:ss a"));
现在用的代码,我有 1-12 小时格式
LocalTime localTime1 = LocalTime.p(localTime, DateTimeFormatter.ofPattern("hh:mm:ss a"));
我的问题是“是否有 LocalTime 提供的任何 API 方法”从给定的时间获取 ante 或 post。或者如何使用干净的 API 获取,而不是使用 slice 和 cut 操作字符串。
我不确定这个的优雅,但如果你想获得一个代表 AM 或 PM 的布尔值,你可以这样做:
boolean isPM = localTime.getHour() >= 12;
如果时间为 AM,则此变量isPM
将为false
,而 PM 为true
。
是否有 LocalTime 提供的 API 方法
方法是get
,我们需要将其与ChronoField.AMPM_OF_DAY
枚举常数结合使用,它将 ante meridiem 编码为 0,将 post 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
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(17条)