java工具:《获取上个月的结束时间》

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: java工具:《获取上个月的结束时间》

image.png

@[toc]

一、介绍

这段代码定义了一个名为 getBeforeLastMonth 的静态方法,其核心功能是获取上个月最后一天的结束时刻,即上个月最后一天的 23:59:59 点。

方法逻辑解析:

  1. 获取当前时间:首先通过 Calendar.getInstance() 获取当前系统时间。
  2. 月份回退:通过 add(Calendar.MONTH, -1) 将日期调整到上个月。
  3. 定位月末:关键一步在于使用 calendar.getActualMaximum(Calendar.DAY_OF_MONTH) 动态获取上个月的实际最大天数(可能是 28、29、30 或 31),并将日历日字段设置为该值,从而准确定位到上个月的最后一天。
  4. 设置末时刻:接着将小时设置为 23、分钟设置为 59、秒钟设置为 59、毫秒设置为 999,精确锁定在上个月最后一天的最后一刻。
  5. 返回结果:最终返回一个 Date 对象,代表上个月最后一天的 23:59:59。

应用场景:
这个方法与 getBeforeFirstMonth 方法形成完美配对,共同用于构建上个月的完整时间区间。在月度数据统计、财务报表生成、订阅周期结算等场景中,该方法返回的时间点可以作为查询条件的上限(小于等于该时间),配合上个月开始时间,即可精确覆盖从上个月1号零点到月末最后一刻的全部数据,确保统计范围既不遗漏也不越界。

二、代码

/**
* author:Yu Yang
* 获取上个月的结束时间
*/
public static Date getBeforeLastMonth(){
    
   Calendar calendar = Calendar.getInstance();// 获取当前日期
   calendar.add(Calendar.YEAR, 0);
   calendar.add(Calendar.MONTH, -1);
   calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));// 获取当前月最后一天
   calendar.set(Calendar.HOUR_OF_DAY, 23);
   calendar.set(Calendar.MINUTE, 59);
   calendar.set(Calendar.SECOND, 59);
   calendar.set(Calendar.MILLISECOND, 999);
   return calendar.getTime();
}

结果展示

System.out.println(getBeforeLastMonth());   //Tue May 31 23:59:59 CST 2022

image.png
重要信息

image.png
image.png
image.png
image.png
image.png

目录
相关文章
|
2月前
|
人工智能 安全 程序员
50%的人给了差评:龙虾为何在技术论坛翻车了?
OpenClaw(龙虾)AI工具因“自动赚钱”“代约主播”等夸张宣传走红,但吾爱破解论坛投票显示:50%技术用户未下载且不认可其能力。技术圈冷静源于见惯“神器”泡沫——AI擅写代码(搬砖),却难懂需求、统筹系统。它不是神药,而是待磨的砍柴刀。
339 3
50%的人给了差评:龙虾为何在技术论坛翻车了?
|
4月前
|
Kubernetes 应用服务中间件 API
应对 Nginx Ingress 退役,是时候理清这些易混淆的概念了
本文希望提供一种更简单的方式,来理解这些容易混淆的技术概念:Nginx、Ingress、Ingress Controller、Ingress API、Nginx Ingress、Higress、Gateway API。
2158 143
|
3月前
|
人工智能 API 机器人
OpenClaw 用户部署和使用指南汇总
本文档为OpenClaw(原MoltBot)官方使用指南,涵盖一键部署(阿里云轻量服务器年仅68元)、钉钉/飞书/企微等多平台AI员工搭建、典型场景实践及高频问题FAQ。同步更新产品化修复进展,助力用户高效落地7×24小时主动执行AI助手。
29331 253
|
2月前
|
Java
java工具:《Java 8 Stream实战:一行代码搞定集合对象类型转换》
java工具:《Java 8 Stream实战:一行代码搞定集合对象类型转换》
156 6
java工具:《Java 8 Stream实战:一行代码搞定集合对象类型转换》
|
2月前
|
分布式计算 运维 Kubernetes
别再手搓集群了:用 Terraform + Helm 把数据平台“养成宠物”变“放养牛群”
别再手搓集群了:用 Terraform + Helm 把数据平台“养成宠物”变“放养牛群”
227 5
|
2月前
|
SQL 数据采集 人工智能
别把数据中台做成“数据坟场”:聊聊企业数据中台架构的真实落地之路
别把数据中台做成“数据坟场”:聊聊企业数据中台架构的真实落地之路
290 4
|
24天前
|
人工智能 安全 API
深度解析 Claude Code 在 Prompt / Context / Harness 的设计与实践
文章内容基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。
2073 57
深度解析 Claude Code 在 Prompt / Context / Harness 的设计与实践
|
3天前
|
人工智能 运维 安全
让 AI 帮你运维 Elasticsearch:阿里云 ES Agent Skill 正式发布
阿里云Elasticsearch Agent Skill是一套面向AI编程助手的智能运维技能包,覆盖实例创建、故障诊断、网络配置三大核心场景。支持自然语言交互,自动校验参数、识别架构差异、执行幂等操作,并内置49条诊断规则与7套SOP,大幅提升ES运维效率与可靠性。
160 7
|
4月前
|
机器人 API 数据安全/隐私保护
只需3步,无影云电脑一键部署Moltbot(Clawdbot)
本指南详解Moltbot(Clawdbot)部署全流程:一、购买无影云电脑Moltbot专属套餐(含2000核时);二、下载客户端并配置百炼API Key、钉钉APP KEY及QQ通道;三、验证钉钉/群聊交互。支持多端,7×24运行可关闭休眠。
7372 70
|
2月前
|
数据采集 网络协议 Java
爬虫踩坑实录:OkHttp 接入爬虫代理报 Too many tunnel connections attempted 深度解析
本文深入解析 OkHttp 使用隧道代理抓取 HTTPS 网站时频发的 `ProtocolException: Too many tunnel connections attempted: 21` 错误,揭示其根源在于风控触发 302 重定向后 OkHttp 盲目重试隧道连接。通过关闭 `followRedirects(false)` 和 `followSslRedirects(false)`,两行配置即可优雅破局,精准捕获拦截响应,提升爬虫稳定性与调试效率。
214 2