java Date获取本月的开始时间与结束时间

获取本月开始时间和结束时间可以通过Java中的Date类和Calendar类来实现。

获取本月开始时间

// 获取当前日期
Date date = new Date();

// 创建Calendar实例并设置日期为当前日期
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

// 将日历的日期设置为本月的第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);

// 将时分秒毫秒设置为0,即开始时间为当天0点
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);

// 获取本月开始时间
Date firstDayOfMonth = calendar.getTime();

在上面的代码中,首先获取当前日期,然后创建一个Calendar实例并将日期设置为当前日期。接下来将日历的日期设置为本月的第一天,并且将时分秒毫秒设置为0,即将时间调整为当天0点。最后通过调用Calendar的getTime()方法获取Date类型的本月开始时间。

获取本月结束时间

// 获取当前日期
Date date = new Date();

// 创建Calendar实例并设置日期为当前日期
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

// 将日历的日期设置为下个月的第一天
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) + 1);
calendar.set(Calendar.DAY_OF_MONTH, 1);

// 将时分秒毫秒设置为0,即结束时间为当天0点
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);

// 减去1毫秒,获取本月结束时间
Date lastDayOfMonth = new Date(calendar.getTimeInMillis() - 1);

在上面的代码中,和获取本月开始时间类似,首先获取当前日期,然后创建一个Calendar实例并将日期设置为当前日期。接下来将日历的日期设置为下一个月的第一天,并且将时分秒毫秒设置为0,即将时间调整为当天0点。最后减去1毫秒,即可得到本月的最后一刻,也就是本月结束的时间。

以下是一个完整的示例代码:

import java.util.Calendar;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        // 获取当前时间
        Date date = new Date();
        System.out.println("当前时间:" + date);

        // 获取本月开始时间
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        Date firstDayOfMonth = calendar.getTime();
        System.out.println("本月开始时间:" + firstDayOfMonth);

        // 获取本月结束时间
        calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) + 1);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        Date lastDayOfMonth = new Date(calendar.getTimeInMillis() - 1);
        System.out.println("本月结束时间:" + lastDayOfMonth);
    }
}

输出结果如下:

当前时间:Thu Oct 21 11:17:13 CST 2021
本月开始时间:Wed Oct 20 00:00:00 CST 2021
本月结束时间:Mon Nov 01 00:00:00 CST 2021

以上是获取本月开始时间和结束时间的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java Date获取本月的开始时间与结束时间 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Struts2之Action接收请求参数和拦截器详解

    Struts2之Action接收请求参数和拦截器详解 本文主要介绍了如何在Struts2中使用Action来接收请求参数,并通过拦截器对Action进行增强。 Action接收请求参数 在Struts2中,我们可以通过Action来获取请求中的参数。 获取参数的方式 直接在Action的成员变量中声明参数,并提供setter方法,Struts2会自动为我们注…

    Java 2023年5月20日
    00
  • 在CentOS中给Apache Tomcat绑定IPv4地址的教程

    下面是在CentOS中给Apache Tomcat绑定IPv4地址的完整攻略: 确认Tomcat默认监听地址 首先,我们需要确认Tomcat当前默认监听的地址。在终端输入以下命令: sudo lsof -i :8080 8080是Tomcat默认的监听端口号,如果你使用的是其他端口号,需要将命令中的8080换成你的端口号。执行命令后,如果输出结果中第二列显示…

    Java 2023年6月15日
    00
  • Java中注解@JsonFormat的用法详解

    Java中注解@JsonFormat的用法详解 什么是@JsonFormat注解 @JsonFormat 注解是 Jackson 提供的注解之一,用于在序列化和反序列化过程中格式化日期类型的数据。它可以将日期类型转化为指定格式的字符串类型,或将字符串类型转化为指定格式的日期类型。 语法格式 @JsonFormat 注解的语法格式如下: @JsonFormat…

    Java 2023年5月20日
    00
  • 我的编程学习小圈子

    大家好,我是陶朱公Boy。(一个认真生活总想超越自己的程序员) 一线互联网Java技术专家,有超过8年+后端开发、架构经验。公众号:「陶朱公Boy」欢迎大家关注! 星球简介 一个帮你学编程、做项目、找工作少走弯路的交流圈,进步从此开始! 加入后你可以: 1.获取陶朱公原创编程学习路线、原创编程知识库、原创项目、海量编程学习资料。 2.向陶朱公和大厂嘉宾1对1…

    Java 2023年4月17日
    00
  • SSM框架整合之Spring+SpringMVC+MyBatis实践步骤

    SSM框架整合之Spring+SpringMVC+MyBatis实践步骤 SSM框架整合是Java Web开发中常用的一种方式,它将Spring、SpringMVC和MyBatis三个框架整合在一起,可以提高开发效率和代码质量。本文将详细介绍SSM框架整合的实践步骤,并提供两个示例说明。 实践步骤 步骤一:创建Maven项目 首先,我们需要创建一个Maven…

    Java 2023年5月17日
    00
  • SpringMVC如何访问WEB-INF jsp过程解析

    访问WEB-INF目录下的jsp页面是一种常用的安全措施,SpringMVC框架也提供了相应的访问方式。 首先,在SpringMVC的配置文件(一般为xml文件)中配置ViewResolver,用于解析jsp视图。配置方式如下: <bean class="org.springframework.web.servlet.view.Interna…

    Java 2023年6月15日
    00
  • 关于Springboot日期时间格式化处理方式总结

    关于Spring Boot日期时间格式化处理方式总结 在Spring Boot项目中,日期和时间的格式化处理是一个常见的需求。本文将总结Spring Boot中常见的日期时间格式化方式,以及如何在代码中应用它们。 1. 使用注解 在Spring Boot中,我们可以使用注解对于日期时间进行格式化。例如,我们可以使用@DateTimeFormat注解来指定日期…

    Java 2023年5月20日
    00
  • 深入讲解Java的对象头与对象组成

    深入讲解Java的对象头与对象组成 在Java中,每个对象都有一个对象头,用来存储对象的元数据信息,同时Java对象也由对象头和实例数据两个部分组成。了解Java对象的组成可以帮助我们更好地理解Java的内存模型。 Java对象的组成 Java对象是由对象头和实例数据两个部分组成的。在64位JVM中,对象头占用16Byte,实例数据大小不定,但至少为8Byt…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部