随笔 - 597  文章 - 4  评论 - 445  阅读 - 424万

使用java的Calendar工具类获取到本月的第一天起始时间和最后一天结束时间。

1、使用java的Calendar工具类获取到本月的第一天起始时间和最后一天结束时间。

复制代码
 1 package com.fline.aic.utils;
 2 
 3 import java.text.DateFormat;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Calendar;
 6 import java.util.Date;
 7 
 8 /**
 9  * 
10  * @Description TODO
11  * @author biehl
12  * @Date 2018年11月13日 上午11:11:08
13  * 
14  */
15 public class CalendarUtils {
16 
17     public static void main(String[] args) {
18         /*//1、获取到前一个月或者前N个月的第一天和最后一天的此刻时间。或者后1个月或者N个月(基本不用)。
19         //当前时间
20         Date date = new Date();
21         //时间格式
22         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
23         //获取到Calendar对象
24         Calendar cal = Calendar.getInstance();
25         //设置当前时间
26         cal.setTime(date);
27         //打印当前时间
28         System.out.println("当前时间:" + sdf.format(date));
29         //设置几个月前的时间,参数2设置提前几个月。参数2设置-1是前一个月,-2是前二个月。+1是推后一个月。以此类推
30         cal.add(Calendar.MONTH,-1);
31         //获取到前一个月的第一天的此刻时间
32         cal.set(Calendar.DAY_OF_MONTH,cal.getActualMinimum(Calendar.DAY_OF_MONTH));
33         //打印前一个月的第一天的此刻时间
34         System.out.println("上个月的第一天的此刻是: " + sdf.format(cal.getTime()));
35         //获取到后一个月的最后一天的此刻时间
36         cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));
37         //打印后一个月的最后一天的此刻时间
38         System.out.println("上个月的最后一天的此刻是: " + sdf.format(cal.getTime()));*/
39         
40         //2、获取本月第一天凌晨开始时间00:00:00和最后一天的最后一刻时间23:59:59
41         Calendar cal = Calendar.getInstance();
42         //当前日期月份
43         cal.add(Calendar.MONTH,0);
44         //创建当前时间
45         Date date = new Date();
46         //设置时间格式为yyyy-MM-dd HH:mm:ss
47         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
48         //设置当前时间,
49         cal.setTime(date);
50         //打印当前时间
51         System.out.println("当前时间:" + sdf.format(date));
52         //获取到本月起始日
53         int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
54         //获取到本月结束日
55         int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
56         //设置本月起始日的年月日时分秒格式
57         cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY),actualMinimum,00,00,00);
58         //打印本月起始日的年月日时分秒格式
59         System.out.println("这个月的第一天是: " + sdf.format(cal.getTime()));
60         //设置本月结束日的年月日时分秒格式
61         cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY),actualMaximum,23,59,59);
62         //打印本月结束日的年月日时分秒格式
63         System.out.println("这个月的最后一天是: " + sdf.format(cal.getTime()));
64         
65         
66         //3、可以根据今天凌晨0点或者凌晨1点的时间用于查询今天的数据量
67         //查询出现在的时间
68         /*Date currentDate = new Date();
69         //设置时间格式为yyyy-MM-dd 01:00:00
70         DateFormat df = new SimpleDateFormat("yyyy-MM-dd 01:00:00");
71         //设置时间格式为yyyy-MM-dd 00:00:00
72         DateFormat df_2 = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
73         //此时间格式可用于查询今天凌晨1点以后的今天的数据量
74         System.out.println("今天凌晨1点时间:" + df.format(currentDate));
75         //此时间格式可用于查询今天凌晨0点以后的今天的数据量
76         System.out.println("今天凌晨0点时间:" + df_2.format(currentDate));*/
77         
78         //4、Mysql数据库查询语句、用于查询今天凌晨1点和凌晨0点以后的数据量
79         //-- 查询今天凌晨1点的时间,可以用来今天凌晨1点以后的数据量
80         //select  DATE_FORMAT(now(),'%Y-%m-%d 01:00:00');
81         //-- 查询今天凌晨0点的时间,可以用来今天凌晨0点以后的数据量
82         //select  DATE_FORMAT(now(),'%Y-%m-%d 00:00:00');
83         
84         //5、PostGresql和Greenplum数据库查询语句、用于查询今天凌晨1点和凌晨0点以后的数据量
85         //-- 查询今天凌晨1点的时间,可以用来今天凌晨1点以后的数据量,datetime类型的时间格式
86         //select  to_char(NOW(),'yyyy-mm-dd 01:00:00');
87         //-- 查询今天凌晨0点的时间,可以用来今天凌晨0点以后的数据量,datetime类型的时间格式
88         //select  to_char(now(),'yyyy-mm-dd 00:00:00');
89 
90         //6、PostGresql和Greenplum数据库查询语句、用于查询今天凌晨1点和凌晨0点以后的数据量
91         //-- 查询今天凌晨1点的时间,可以用来今天凌晨1点以后的数据量,timestamp类型的时间格式,推荐
92         //select to_timestamp(TO_CHAR(CURRENT_DATE + interval '1 hour', 'yyyy-mm-dd hh24'),'yyyy-mm-dd hh24');
93         //-- 查询今天凌晨0点的时间,可以用来今天凌晨0点以后的数据量,timestamp类型的时间格式,推荐
94         //select to_timestamp(TO_CHAR(CURRENT_DATE + interval '0 hour', 'yyyy-mm-dd hh24'),'yyyy-mm-dd hh24');
95 
96         
97     }
98 }
复制代码

 

posted on   别先生  阅读(6384)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
历史上的今天:
2017-11-13 关于yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库)
2016-11-13 Java Web应用的开发环境配置
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示