1. 程式人生 > >使用java的Calendar工具類獲取到本月的第一天起始時間和最後一天結束時間。

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