JAVA获取指定时间
根据当前日期,获取指定日期的各种方法
package com.jb.realtimeMonitor.util;
import org.junit.Test;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* Copyright @ 2021
*
* @Author 张国敬
* @Description 获取本日,本周,本月,本年起始、结束时间
* @Date 2021/5/17 16:42
* @Version 1.0
*/
public class GetDate {
@Test
public void test(){
SimpleDateFormat f = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
System.out.println("当天24点时间:" + f.format(getTimesnight()));
System.out.println("当前时间:" + f.format(new Date()));
System.out.println("当天0点时间:" + f.format(getTimesmorning()));
System.out.println("昨天0点时间:" + f.format(getYesterdaymorning()));
System.out.println("近7天时间:" + f.format(getWeekFromNow()));
System.out.println("本周周一0点时间:" + f.format(getTimesWeekmorning()));
System.out.println("本周周日24点时间:" + f.format(getTimesWeeknight()));
System.out.println("本月初0点时间:" + f.format(getTimesMonthmorning()));
System.out.println("本月未24点时间:" + f.format(getTimesMonthnight()));
System.out.println("上月初0点时间:" + f.format(getLastMonthStartMorning()));
System.out.println("本季度开始点时间:" + f.format(getCurrentQuarterStartTime()));
System.out.println("本季度结束点时间:" + f.format(getCurrentQuarterEndTime()));
System.out.println("本年开始点时间:" + f.format(getCurrentYearStartTime()));
System.out.println("本年结束点时间:" + f.format(getCurrentYearEndTime()));
System.out.println("上年开始点时间:" + f.format(getLastYearStartTime()));
}
/** 获得当天0点时间 2021-5-17 0:00:00
*
* @return
*/
public static Date getTimesmorning() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
/** 获得昨天0点时间
*
* @return
*/
public static Date getYesterdaymorning() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(getTimesmorning().getTime()-3600*24*1000);
return cal.getTime();
}
/** 获得当天近7天时间
*
* @return
*/
public static Date getWeekFromNow() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis( getTimesmorning().getTime()-3600*24*1000*7);
return cal.getTime();
}
/** 获得当天24点时间 2021-5-18 0:00:00
*
* @return
*/
public static Date getTimesnight() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 24);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
/** 获得本周一0点时间 2021-5-17 0:00:00
*
* @return
*/
public static Date getTimesWeekmorning() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return cal.getTime();
}
/** 获得本周日24点时间
*
* @return
*/
public static Date getTimesWeeknight() {
Calendar cal = Calendar.getInstance();
cal.setTime(getTimesWeekmorning());
cal.add(Calendar.DAY_OF_WEEK, 7);
return cal.getTime();
}
/** 获得本月第一天0点时间 2021-5-1 0:00:00
*
* @return
*/
public static Date getTimesMonthmorning() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
return cal.getTime();
}
/** 获得本月最后一天24点时间
*
* @return
*/
public static Date getTimesMonthnight() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, 24);
return cal.getTime();
}
/**
* 上月初0点时间:2021-4-1 0:00:00
* @return
*/
public static Date getLastMonthStartMorning() {
Calendar cal = Calendar.getInstance();
cal.setTime(getTimesMonthmorning());
cal.add(Calendar.MONTH, -1);
return cal.getTime();
}
/**
* 本季度开始点时间:2021-4-1 0:00:00
* @return
*/
public static Date getCurrentQuarterStartTime() {
Calendar c = Calendar.getInstance();
int currentMonth = c.get(Calendar.MONTH) + 1;
SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
Date now = null;
try {
if (currentMonth >= 1 && currentMonth <= 3) {
c.set(Calendar.MONTH, 0);
} else if (currentMonth >= 4 && currentMonth <= 6) {
c.set(Calendar.MONTH, 3);
} else if (currentMonth >= 7 && currentMonth <= 9) {
c.set(Calendar.MONTH, 4);
} else if (currentMonth >= 10 && currentMonth <= 12) {
c.set(Calendar.MONTH, 9);
}
c.set(Calendar.DATE, 1);
now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
} catch (Exception e) {
e.printStackTrace();
}
return now;
}
/** 当前季度的结束时间
*
* @return
*/
public static Date getCurrentQuarterEndTime() {
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentQuarterStartTime());
cal.add(Calendar.MONTH, 3);
return cal.getTime();
}
/**
* 获取本年开始点时间:2021-5-1 0:00:00
* @return
*/
public static Date getCurrentYearStartTime() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), 00, 01, 0, 0, 0);
// cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.YEAR));
return cal.getTime();
}
/**
* 本年结束点时间:2022-5-1 0:00:00
* @return
*/
public static Date getCurrentYearEndTime() {
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentYearStartTime());
cal.add(Calendar.YEAR, 1);
return cal.getTime();
}
/**
* 上年开始点时间:2020-5-1 0:00:00
* @return
*/
public static Date getLastYearStartTime() {
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentYearStartTime());
cal.add(Calendar.YEAR, -1);
return cal.getTime();
}
}