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日

相关文章

  • 网页教案,针对初学者的教案

    网页教案,针对初学者的教案 背景介绍 越来越多的人开始学习网页制作,但对于初学者来说,网页制作可能会显得困难和复杂。因此,为初学者提供一份全面的、详细的网页教案是非常必要的。 教案具体内容 第一部分:HTML基础 在这一部分中,我们将介绍基础的HTML标签和语法。主要包括以下内容: HTML文件结构 标题和段落标签 列表标签 链接标签 图片标签 第二部分:C…

    Java 2023年5月23日
    00
  • MyBatis的mapper.xml文件中入参和返回值的实现

    MyBatis是一个数据持久层框架,mapper.xml文件是其中非常重要的一部分,它是用来描述SQL语句和映射关系的,同时也定义了SQL语句的入参和返回值类型。本攻略将详细讲解MyBatis的mapper.xml文件中入参和返回值的实现。 入参 在mapper.xml文件中,可以使用#{}语法来引用SQL语句的参数。在#{}中定义的是参数的名称,这些参数值…

    Java 2023年5月20日
    00
  • Spring oxm入门实例

    Spring OXM 简介 Spring OXM 是 Spring Framework 中的一个模块,主要用于支持对象到 XML 和 XML 到对象的互相转换。OXM 是 Object/XML Mapping 的缩写,常用于系统之间的数据传输或存储,例如将 Java 对象序列化为 XML 格式存入数据库或者网络传输,另一方也可以将 XML 格式还原为 Jav…

    Java 2023年5月20日
    00
  • Android基于socket实现的简单C/S聊天通信功能

    实现Android基于socket的C/S聊天通信功能,可以分成如下几个步骤: 1. 建立Server端 使用Java的ServerSocket类创建Server端。 在Server端运行一个死循环,等待Client发来连接请求(使用Socket类进行连接)。 接收Client发送的消息,处理并返回数据给Client。 下面是一个Java Server端的示…

    Java 2023年5月23日
    00
  • node连接kafka2.0实现方法示例

    下面是详细讲解“node连接kafka2.0实现方法示例”的完整攻略。 简介 kafka 是由 Apache 软件基金会开发的一个分布式流处理平台。它由 Scala 和 Java 写成。Kafka 是一个强大、高吞吐量的分布式系统,它可以处理海量的消息,并且提供了很好的消息存储和查询能力。Node.js 中有多个 kafka client 库可供使用,本文主…

    Java 2023年6月2日
    00
  • Java Springboot的目的你知道吗

    当谈到Java应用程序开发时,Spring框架是不可避免的谈论到的话题。Spring框架是一个功能强大、灵活且极为流行的Java企业应用程序框架。随着时间的推移,Spring框架变得越来越复杂,如果我们只需要一个轻量级的框架来支持我们的Java应用程序,那么就可以使用Spring Boot。 Spring Boot是Spring框架的标准化之作,它提供了一种…

    Java 2023年5月19日
    00
  • Springboot 全局时间格式化操作

    下面是关于Spring Boot全局时间格式化操作的完整攻略。 背景 Spring Boot是一个使用很方便的轻量级框架,它内置了很多常用的扩展功能。在实际应用中,我们经常需要对时间类型数据进行格式化处理,以满足业务需求。此时,全局时间格式化就成了必不可少的一个功能。 解决方案 方案一:在全局配置文件中配置时间格式 可以在application.proper…

    Java 2023年5月20日
    00
  • ShardingSphere jdbc集成多数据源的实现步骤

    下面是详细讲解“ShardingSphere jdbc集成多数据源的实现步骤”的完整攻略: 前言 ShardingSphere 是一个开源的、易于使用的分布式数据库解决方案。它为用户提供了数据分片、读写分离、跨库分页、数据加解密等功能,可以帮助用户轻松地构建分布式数据库系统。 本文将介绍如何在一个项目中使用 ShardingSphere JDBC 集成多数据…

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