Java获取上月份最后一天日期8位的示例代码

下面是Java获取上月份最后一天日期8位的示例代码攻略:

一、获取上月份最后一天的日期

一般情况下,获取任意月份的最后一天日期的代码如下:

Calendar calendar = Calendar.getInstance();
// 将日期设置为当月的1号
calendar.set(Calendar.DATE, 1);
// 月份-1,即可得到上个月的时间
calendar.add(Calendar.MONTH, -1);
// 最后调整日期到上个月的最后一天
calendar.add(Calendar.DATE, -1);
// 获取上个月最后一天的日期
Date lastDayOfLastMonth = calendar.getTime();

解析:首先,我们获取系统当前时间并创建 Calendar 对象。接着,我们将日期设置为当月1号,这里是为了便于计算上月份的最后一天日期。我们再将月份值减一,即可得到上个月的时间。最后,我们再将日期值调整为上个月份的最后一天,即可得到上月份的最后一天日期。

二、转换日期格式为8位

上面获得的最后一天日期为 java.util.Date 类型,如果想将它转换为8位的日期格式,例如 20221130,需要使用 SimpleDateFormat 对象进行格式化,代码如下:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String lastDayOfLastMonthStr = sdf.format(lastDayOfLastMonth);

解析:我们创建了一个 SimpleDateFormat 对象,格式化日期的格式为年月日 8 位字符串,即 "yyyyMMdd"。接下来,我们将上月份的最后一天日期格式化成8位字符串。

三、完整代码示例

将上述两步结合在一起,完整的示例代码如下:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class GetLastDayOfLastMonth {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        // 将日期设置为当月的1号
        calendar.set(Calendar.DATE, 1);
        // 月份-1,即可得到上个月的时间
        calendar.add(Calendar.MONTH, -1);
        // 最后调整日期到上个月的最后一天
        calendar.add(Calendar.DATE, -1);
        // 获取上个月最后一天的日期
        Date lastDayOfLastMonth = calendar.getTime();

        // 将日期格式化为8位字符串
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String lastDayOfLastMonthStr = sdf.format(lastDayOfLastMonth);

        System.out.println("上月份最后一天日期为:" + lastDayOfLastMonthStr);
    }
}

输出结果为:上月份最后一天日期为:20220630

四、多种写法示例

除了上面的示例代码,我们还可以使用其他的写法来获取上月份最后一天日期,下面给出两个不同的示例。

  1. LocalDate方式
import java.time.LocalDate;

public class GetLastDayOfLastMonth {
    public static void main(String[] args) {
        LocalDate localDate = LocalDate.now().minusMonths(1).withDayOfMonth(1).minusDays(1);

        System.out.println("上月份最后一天日期为:" + localDate.toString().replaceAll("-", ""));
    }
}

解析:这种写法运用了Java8的 LocalDate 类来获取当前时间上个月份的最后一天日期。首先,我们通过 LocalDate.now() 获取当前时间并减去一个月份。接下来,我们将日期设置为当月1号并减去一天即可得到上个月份的最后一天日期。最后,我们将日期字符串的中横线去除,以满足8位日期格式的要求。

  1. Joda-Time方式
import org.joda.time.DateTime;

public class GetLastDayOfLastMonth {
    public static void main(String[] args) {
        DateTime dateTime = new DateTime().minusMonths(1).dayOfMonth().withMaximumValue();

        System.out.println("上月份最后一天日期为:" + dateTime.toString("yyyyMMdd"));
    }
}

解析:这种写法使用了Joda-Time开源库来获取上月份的最后一天日期。我们通过 DateTime 获取当前时间并减去一个月份,然后调用 dayOfMonth() 设置日期为当月1号,最后调用 withMaximumValue() 设置日期为当月最后一天。最后,我们将日期格式化为8位日期字符串。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java获取上月份最后一天日期8位的示例代码 - Python技术站

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

相关文章

  • Java程序执行过程及内存机制详解

    下面是“Java程序执行过程及内存机制详解”的完整攻略: Java程序执行过程 编译器将代码转换成字节码 当我们编写Java程序时,使用的是Java语言,而计算机并不能理解Java语言,所以我们需要将Java源代码通过Java编译器(例如javac命令)转换成一种中间形式的代码,叫做字节码(Byte Code),也称为类文件(class file)。这个过程…

    Java 2023年5月23日
    00
  • 详解基于java的Socket聊天程序——服务端(附demo)

    详解基于java的Socket聊天程序——服务端(附demo)攻略 1. 简介 本文将详细介绍如何使用Java中的Socket编写一个简单的聊天程序。文章分为客户端和服务端两部分,本文将着重讲解服务端的实现过程,并提供对应示例代码。 2. 整体流程 创建ServerSocket 等待客户端连接,创建Socket 创建线程处理客户端连接 服务端处理客户端的消息…

    Java 2023年5月19日
    00
  • jsp实现局部刷新页面、异步加载页面的方法

    让我来为您详细讲解一下“JSP实现局部刷新页面、异步加载页面的方法”的完整攻略。 前言 JSP(Java Server Pages)是一种基于Java技术的Web开发技术,它允许开发人员在HTML标签中包含Java代码,并通过编译器将其转换为Java Servlet。JSP通常与MVC(Model-View-Controller)设计模式一起使用,它允许开发…

    Java 2023年6月15日
    00
  • Java实现前端jsencrypt.js加密后端解密的示例代码

    下面是实现Java实现前端jsencrypt.js加密后端解密的完整攻略: 一、前言 在前后端分离架构中,涉及到传输敏感信息时通常会进行加密处理。在前端,我们可以使用jsencrypt.js这样的JS库进行加密操作,但将加密后的数据发送到后端后,我们需要使用Java等语言进行解密操作。 因此,本文将讲解如何使用Java实现前端jsencrypt.js加密后端…

    Java 2023年5月19日
    00
  • 实例详解JSON取值(key是中文或者数字)方式

    好的!JSON是一种常用的数据格式,在前端开发中经常会用到。本篇攻略主要介绍如何在JSON中取值,并且针对key是中文或数字的情况进行详细讲解,下面开始具体介绍。 JSON简介 JSON是JavaScript对象表示法的缩写,是一种轻量级的数据交换格式,可读性高,易于编写和解析。JSON可以表示数字、字符串、布尔值、数组、对象和null,是前端开发中常用的数…

    Java 2023年5月26日
    00
  • IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能

    下面我将为您详细讲解“IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能”的完整攻略。 环境准备 首先,我们需要在本地环境中安装好如下软件: JDK、IDEA、Maven、MySQL等开发环境 SpringBoot、MyBatis、MySql等相关依赖包 创建SpringBoot项目 步骤如下: 打开IDEA,选择 Cr…

    Java 2023年5月20日
    00
  • JavaWeb实现学生信息管理系统(3)

    好的。首先, “JavaWeb实现学生信息管理系统(3)” 是一篇关于使用JavaWeb技术实现学生信息管理系统的文章。在这篇文章中,作者主要介绍了如何使用JavaWeb技术完成学生信息管理系统的前端页面展示和后端数据交互处理。 以下是该文章的完整攻略: 第一步:设计数据库 首先,我们需要设计数据库的结构,确定需要存储哪些信息以及它们之间的关系。可以使用My…

    Java 2023年5月23日
    00
  • Mybatis-plus与Mybatis依赖冲突问题解决方法

    Mybatis-plus是基于Mybatis的增强框架,它在Mybatis的基础上提供了一些实用、便捷的功能。但是,在开发过程中,我们有可能会遇到Mybatis-plus和Mybatis依赖冲突的问题。本文将针对这一问题给出完整的解决方法,包括具体的示例演示。 完整攻略 1. 了解冲突原因 首先,我们需要了解冲突的原因。Mybatis-plus和Mybati…

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