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

简介: 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

目录
相关文章
|
7月前
|
人工智能 安全 程序员
50%的人给了差评:龙虾为何在技术论坛翻车了?
OpenClaw(龙虾)AI工具因“自动赚钱”“代约主播”等夸张宣传走红,但吾爱破解论坛投票显示:50%技术用户未下载且不认可其能力。技术圈冷静源于见惯“神器”泡沫——AI擅写代码(搬砖),却难懂需求、统筹系统。它不是神药,而是待磨的砍柴刀。
698 3
50%的人给了差评:龙虾为何在技术论坛翻车了?
|
8月前
|
人工智能 API 机器人
OpenClaw 用户部署和使用指南汇总
本文档为OpenClaw(原MoltBot)官方使用指南,涵盖一键部署(阿里云轻量服务器年仅68元)、钉钉/飞书/企微等多平台AI员工搭建、典型场景实践及高频问题FAQ。同步更新产品化修复进展,助力用户高效落地7×24小时主动执行AI助手。
30958 253
|
7月前
|
Java
java工具:《Java 8 Stream实战:一行代码搞定集合对象类型转换》
java工具:《Java 8 Stream实战:一行代码搞定集合对象类型转换》
243 6
java工具:《Java 8 Stream实战:一行代码搞定集合对象类型转换》
|
7月前
|
存储 Java
java工具:String转Long(日期格式字符串转为时间毫秒数)
java工具:String转Long(日期格式字符串转为时间毫秒数)
372 5
|
9月前
|
Kubernetes 应用服务中间件 API
应对 Nginx Ingress 退役,是时候理清这些易混淆的概念了
本文希望提供一种更简单的方式,来理解这些容易混淆的技术概念:Nginx、Ingress、Ingress Controller、Ingress API、Nginx Ingress、Higress、Gateway API。
4191 189
|
6月前
|
人工智能 监控 Kubernetes
LoongCollector + ACS Agent Sandbox:构建 AI Agent 生产级运行平台
文章介绍了阿里云ACSAgentSandbox与LoongCollector协同构建的AIAgent生产级运行平台,通过沙箱隔离保障运行时安全,并以高性能、全链路可观测能力解决Agent行为不可预测和执行风险难题。
3172 94
|
2月前
|
SQL JavaScript API
MokaTest使用篇-HTTP接口
MokaTest是一款开源接口调试工具,当前支持HTTP与SQL接口测试,提供环境配置、前后置JS脚本、Mock模拟、JsonPath/正则提取、多维度断言等功能,助力高效API开发与测试。
|
2月前
|
开发工具 git
Agent 的交付过程,现在可以像录像一样回放
Better Harness 是开源工具,用于分析 Coding Agent 的完整交付链路。它将需求(Intent)、会话(Process)与代码提交(Output)串联,在本地生成只读的 Harness Inspector 页面,支持 Workbench、Trace、Replay 三视角追溯任务全貌,助力沉淀可复用 SKILL。
122 0
|
7月前
|
存储 缓存 Java
Java 对象内存布局:从堆内存储到伪共享优化的底层真相
Java对象内存布局是JVM核心基础:含对象头(Mark Word+Klass指针)、实例数据(字段重排序优化)和对齐填充(8字节对齐)。它直接影响内存占用、GC效率、锁升级与伪共享性能。掌握此机制,是深入理解并发优化(如@Contended)、指针压缩及高性能编程的必经之路。(239字)
672 111