检查Antemerīdiem并发布merīdiem

问题描述 投票:0回答:2

我已经习惯了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,而不是使用切片和切割来操作字符串。

java java-8 java-api localtime
2个回答
2
投票

我不确定这个的优雅,但是如果你想获得一个表示它是AM还是PM的布尔值,你可以这样做:

boolean isPM = localTime.getHour() >= 12;

如果时间是AM而isPM为PM,则此变量false将为true


1
投票

是否有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
© www.soinside.com 2019 - 2024. All rights reserved.