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 }