使用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 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏desperate633

LintCode N皇后问题题目分析代码

每个解决方案包含一个明确的n皇后放置布局,其中“Q”和“.”分别表示一个女王和一个空位置。

862
来自专栏算法与数据结构

PTA 7-4 排座位(25 分)

7-4 排座位(25 分) 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对...

2459
来自专栏编舟记

命令行中 tree 的多重实现

992
来自专栏Petrichor的专栏

leetcode: 75. Sort Colors

1593
来自专栏算法修养

FZU 1064 教授的测试(卡特兰数,递归)

Problem 1064 教授的测试 Accept: 149 Submit: 364 Time Limit: 1000 mSec Memor...

3668
来自专栏技术小黑屋

Java性能调优之容器扩容问题

在Java和Android编程中,我们经常使用类似ArrayList,HashMap等这些容器。这些容器少则存储几条,多则上千甚至更多。作为性能调优的一部分,容...

1121
来自专栏木子昭的博客

明星程序员被Google挂掉的故事

首先要提一个软件Homebrew Homebrew可能是Mac上最好用的包管理器, 地位相当于Ubuntu的apt, 也相当于命令行版的AppStore ? ...

3785
来自专栏灯塔大数据

每周学点大数据 | No.25二叉搜索树回顾(二)

No.25期 二叉搜索树回顾(二) Mr. 王:既然提到了有序的状态,那么我们就来谈谈有根树的遍历问题。 小可:我知道,遍历就是访问一个数据集合中的所...

3516
来自专栏计算机视觉与深度学习基础

Leetcode 117 Populating Next Right Pointers in Each Node II

Follow up for problem "Populating Next Right Pointers in Each Node". What if t...

1765
来自专栏算法修养

PAT 甲级 1020 Tree Traversals (二叉树遍历)

1020. Tree Traversals (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B ...

4024

扫码关注云+社区

领取腾讯云代金券