it编程 > 编程语言 > Java

java如何判断Date是上午还是下午

6人参与 2025-03-08 Java

java判断date是上午还是下午

我要用java生成表格统计信息,如下图所示:

所以就诞生了本文的内容。

在 java 里,判断 date 对象代表的时间是上午还是下午有多种方式,下面为你详细介绍不同的实现方法。

方式一:使用 java.util.calendar

calendar 类可以用来获取 date 对象中的各个时间字段,通过 hour_of_day 字段能判断是上午还是下午。

import java.util.calendar;
import java.util.date;

public class dateampmcheckwithcalendar {
    public static void main(string[] args) {
        // 创建一个 date 对象
        date currentdate = new date();

        // 获取 calendar 实例,并将 date 对象设置进去
        calendar calendar = calendar.getinstance();
        calendar.settime(currentdate);

        // 获取 24 小时制的小时数
        int hour = calendar.get(calendar.hour_of_day);

        if (hour < 12) {
            system.out.println("上午");
        } else {
            system.out.println("下午");
        }
    }
}

代码解释

  1. 首先创建了一个 date 对象 currentdate 表示当前时间。
  2. 接着获取 calendar 实例,并使用 settime 方法将 currentdate 设置进去。
  3. 通过 get(calendar.hour_of_day) 获取 24 小时制的小时数。
  4. 根据小时数是否小于 12 判断是上午还是下午。

方式二:使用 java.time 包(java 8 及以后)

java 8 引入的 java.time 包提供了更简洁和强大的日期时间处理功能。

可以将 date 转换为 zoneddatetime 再进行判断。

import java.time.zoneid;
import java.time.zoneddatetime;
import java.util.date;

public class dateampmcheckwithjavatime {
    public static void main(string[] args) {
        // 创建一个 date 对象
        date currentdate = new date();

        // 将 date 转换为 zoneddatetime
        zoneddatetime zoneddatetime = currentdate.toinstant().atzone(zoneid.systemdefault());

        // 获取 24 小时制的小时数
        int hour = zoneddatetime.gethour();

        if (hour < 12) {
            system.out.println("上午");
        } else {
            system.out.println("下午");
        }
    }
}

代码解释

  1. 创建 date 对象 currentdate
  2. 使用 toinstant() 方法将 date 转换为 instant,再通过 atzone(zoneid.systemdefault()) 转换为 zoneddatetime
  3. 调用 gethour() 方法获取 24 小时制的小时数。
  4. 根据小时数判断是上午还是下午。

方式三:使用 simpledateformat 格式化输出判断

可以使用 simpledateformatdate 格式化为包含上午/下午标识的字符串,然后进行判断。

import java.text.simpledateformat;
import java.util.date;

public class dateampmcheckwithformat {
    public static void main(string[] args) {
        // 创建一个 date 对象
        date currentdate = new date();

        // 定义日期格式,使用 "a" 表示上午/下午标识
        simpledateformat sdf = new simpledateformat("a");

        // 格式化日期
        string ampm = sdf.format(currentdate);

        if ("上午".equals(ampm)) {
            system.out.println("上午");
        } else {
            system.out.println("下午");
        }
    }
}

代码解释

  1. 创建 date 对象 currentdate
  2. 创建 simpledateformat 对象,指定格式为 "a",它会输出 上午下午
  3. 使用 format 方法将 date 格式化为字符串。
  4. 通过比较字符串判断是上午还是下午。这种方式的语言显示受系统默认语言环境影响。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

java double保留两位小数问题

03-08

java中实现一个定时任务的方式

03-08

java如何根据HttpServletRequest获取IP地址

03-08

SpringBoot如何实现调用controller和Service层方法

03-08

Java实现markdown格式内容转换为word

03-08

利用EasyPOI实现多sheet和列数的动态生成

03-08

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论