java如何判断上下午

java如何判断上下午

作者:Joshua Lee发布时间:2026-02-25阅读时长:0 分钟阅读次数:7

用户关注问题

Q
在Java中如何获取当前时间是上午还是下午?

我在使用Java编程时,需要判断当前时间是上午还是下午,该如何实现?

A

通过Calendar类判断上午下午

可以使用Java的Calendar类获取当前时间,然后调用get(Calendar.AM_PM)方法,如果返回值是Calendar.AM代表上午,返回Calendar.PM代表下午。示例代码如下:

Calendar calendar = Calendar.getInstance();
int amPm = calendar.get(Calendar.AM_PM);
if (amPm == Calendar.AM) {
    System.out.println("现在是上午");
} else {
    System.out.println("现在是下午");
}
Q
Java 8中有没有更简洁的方式判断时间是上午还是下午?

Java 8引入了新的时间API,用这些API判断时间是上午还是下午的方法有哪些?

A

使用LocalTime和ChronoField判断

Java 8引入了java.time包,可以通过LocalTime获取当前时间,再用get(ChronoField.AMPM_OF_DAY)判断,0表示上午,1表示下午。例如:

LocalTime time = LocalTime.now();
int amPm = time.get(ChronoField.AMPM_OF_DAY);
if (amPm == 0) {
    System.out.println("现在是上午");
} else {
    System.out.println("现在是下午");
}
Q
如何根据Java时间判断一个时间字符串所代表的是上午还是下午?

我有一个时间格式的字符串(例如"10:30"),想用Java程序判断它是上午时间还是下午时间,怎么做比较好?

A

解析时间字符串并判断时段

可以先将时间字符串解析为LocalTime对象,然后判断该时间的小时数是否小于12,如果小于12代表上午,否则是下午。示例代码如下:

String timeStr = "10:30";
LocalTime time = LocalTime.parse(timeStr);
if (time.getHour() < 12) {
    System.out.println("时间位于上午");
} else {
    System.out.println("时间位于下午");
}