public class Test {
@org.junit.Test
public void testDay(){
SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");
//获取指定年月第一天
Calendar calstar= Calendar.getInstance();
calstar.setTime(new Date());
calstar.set(Calendar.YEAR, calstar.get(Calendar.YEAR));
calstar.set(Calendar.MONTH, 0);
calstar.set(Calendar.DAY_OF_MONTH, 1);
System.out.println("指定年第一天:"+DateUtil.beginOfDay(calstar.getTime()));
calstar.set(Calendar.YEAR, calstar.get(Calendar.YEAR)+1);
calstar.set(Calendar.DAY_OF_MONTH, 0);//最后一天
System.out.println("指定年最后一天:"+DateUtil.endOfDay(calstar.getTime()));
Calendar sn = Calendar.getInstance();
sn.setTime(new Date());
sn.set(Calendar.YEAR,sn.get(Calendar.YEAR)-2);
sn.set(Calendar.MONTH,0);
sn.set(Calendar.DAY_OF_MONTH,1);
System.out.println("三年开始"+DateUtil.beginOfDay(sn.getTime()));
sn.set(Calendar.YEAR,sn.get(Calendar.YEAR)+2);
sn.set(Calendar.MONTH,12);
sn.set(Calendar.DAY_OF_MONTH,0);
System.out.println("三年结束"+DateUtil.endOfDay (sn.getTime()));
Calendar zz = Calendar.getInstance();
zz.setTime(new Date());
zz.set(Calendar.DAY_OF_WEEK,2);
zz.set(Calendar.WEEK_OF_YEAR,8);
System.out.println("第---周---"+DateUtil.beginOfDay(zz.getTime()));
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.set(Calendar.MONTH,c.get(Calendar.MONTH) - 1);
System.out.println("上个月是---:"+DateUtil.beginOfDay(c.getTime()));
//获取上个月的第一天
Calendar cal = Calendar.getInstance();
//上个月
cal.add(Calendar.MONTH, -1);
//设置为1号,当前日期既为本月第一天
cal.set(Calendar.DAY_OF_MONTH,1);
System.out.println("上月第一天:"+DateUtil.beginOfDay(cal.getTime()));
//设置上个月最后一天
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println("上月最后一天:"+DateUtil.endOfDay(cal.getTime()));
//获取当前月第一天:
Calendar calstr = Calendar.getInstance();
//本月
calstr.add(Calendar.MONTH, 0);
//设置为1号为本月第一天
calstr.set(Calendar.DAY_OF_MONTH,1);
System.out.println("当月第一天:"+
String.valueOf(DateUtil.beginOfDay(calstr.getTime())));
//设置当月为最后一天
calstr.set(Calendar.DAY_OF_MONTH,
calstr.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println("当月最后一天:"+DateUtil.endOfDay(calstr.getTime()));
Calendar calasts = Calendar.getInstance();
//calasts.setTime(new Date());
calasts.add(calasts.DATE,1);
System.out.println("当前时间加1:"+sm.format(calasts.getTime()));
calasts.add(calasts.DATE,-3);
System.out.println("当前时间-3:"+sm.format(calasts.getTime()));
System.out.println("获得上周第一天:"+getWeekStartDay());
System.out.println("获得上周最后一天:"+getWeekEndDay());
System.out.println("获得本周第一天:"+getCurrentWeekStartDay());
System.out.println("获得本周最后一天 :"+getCurrentWeekEndDay());
System.out.println("三天开始:"+getNeverThreeStartTime());
System.out.println("三天结束:"+getNeverThreeEndTime());
System.out.println("上个月三天开始:"+getNeverThreeStartTimes());
System.out.println("上个月三天结束:"+getNeverThreeEndTimes());
System.out.println("七天开始:"+getNeverSevenStartTime());
System.out.println("七天结束:"+getNeverSevenEndTime());
System.out.println("上个月7天开始:"+getNeverSevenStartTimes());
System.out.println("上个月7天结束:"+getNeverSevenEndTimes());
System.out.println("今天开始时间:"+getTodayStartTime());
System.out.println("今天结束时间:"+getTodayEndTime());
System.out.println("昨天开始时间:"+getYesterdayStartTime());
System.out.println("昨天结束时间:"+getYesterdayEndTime());
System.out.println("季度开始:"+getCurrentQuarterStartTime());
System.out.println("季度结束:"+getCurrentQuarterEndTime());
System.out.println("上个季度开始:"+getCurrentQuarterStartTimes());
System.out.println("上个季度结束:"+getCurrentQuarterEndTimes());
}
/**
* 获得上周第一天 周日 00:00:00
*/
public static Date getWeekStartDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, 1);
calendar.add(Calendar.DATE, -7);
return DateUtil.beginOfDay(calendar.getTime());
}
/**
* 获得上周最后一天 周六 23:59:59
*/
public static Date getWeekEndDay() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getWeekStartDay());
calendar.add(Calendar.DATE, 6);
return DateUtil.endOfDay(calendar.getTime());
}
/**
* 获得本周第一天 周日 00:00:00
*/
public static Date getCurrentWeekStartDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, 2);
return DateUtil.beginOfDay(calendar.getTime());
}
/**
* 获得本周最后一天 周六 23:59:59
*/
public static Date getCurrentWeekEndDay() {
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentWeekStartDay());
cal.add(Calendar.DATE, 6);
return DateUtil.endOfDay(cal.getTime());
}
/**
* 近七天开始时间
*
* @return
*/
public static Date getNeverSevenStartTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE, -6);
return DateUtil.beginOfDay(calendar.getTime());
}
/**
* 近七天结束时间
*
* @return
*/
public static Date getNeverSevenEndTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getNeverSevenStartTime());
calendar.add(Calendar.DATE, 6);
return DateUtil.endOfDay(calendar.getTime());
}
/**
* 近三天开始时间
*
* @return
*/
public static Date getNeverThreeStartTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE, -2);
return DateUtil.beginOfDay(calendar.getTime());
}
/**
* 近三天结束时间
*
* @return
*/
public static Date getNeverThreeEndTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getNeverThreeStartTime());
calendar.add(Calendar.DATE, 2);
return DateUtil.endOfDay(calendar.getTime());
}
/**
* 上月近三天开始时间
*
* @return
*/
public static Date getNeverThreeStartTimes() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE, -2);
calendar.set(Calendar.MONTH,calendar.get(Calendar.MONTH)-1);
return DateUtil.beginOfDay(calendar.getTime());
}
/**
* 上月近三天结束时间
*
* @return
*/
public static Date getNeverThreeEndTimes() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getNeverThreeStartTimes());
calendar.add(Calendar.DATE, 2);
return DateUtil.endOfDay(calendar.getTime());
}
/**
* 上月近七天开始时间
*
* @return
*/
public static Date getNeverSevenStartTimes() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.MONTH,calendar.get(Calendar.MONTH)-1);
calendar.add(Calendar.DATE, -6);
return DateUtil.beginOfDay(calendar.getTime());
}
/**
* 上月近七天结束时间
*
* @return
*/
public static Date getNeverSevenEndTimes() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getNeverSevenStartTimes());
calendar.add(Calendar.DATE, 6);
return DateUtil.endOfDay(calendar.getTime());
}
/**
* 昨天开始时间
*
* @return
*/
public static Date getYesterdayStartTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE, -1);
return DateUtil.beginOfDay(calendar.getTime());
}
/**
* 昨天结束时间
*
* @return
*/
public static Date getYesterdayEndTime() {
return DateUtil.endOfDay(getYesterdayStartTime());
}
/**
* 今天开始时间
*
* @return
*/
public static Date getTodayStartTime() {
return DateUtil.beginOfDay(new Date());
}
/**
* 今天结束时间
*
* @return
*/
public static Date getTodayEndTime() {
return DateUtil.endOfDay(new Date());
}
/**
* 当前季度的结束时间,
*
* @return
*/
public static Date getCurrentQuarterEndTime() {
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentQuarterStartTime());
cal.add(Calendar.MONTH, 3);
cal.set(Calendar.DATE,0);
return DateUtil.endOfDay(cal.getTime());
}
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 DateUtil.beginOfDay(now);
}
/**
* 当前季度的结束时间,即上个季度
*
* @return
*/
public static Date getCurrentQuarterEndTimes() {
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentQuarterStartTimes());
cal.add(Calendar.MONTH, 3);
cal.set(Calendar.DATE,0);
return DateUtil.endOfDay(cal.getTime());
}
public static Date getCurrentQuarterStartTimes() {
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);
c.set(Calendar.MONTH,c.get(Calendar.MONTH)-3);
now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
} catch (Exception e) {
e.printStackTrace();
}
return DateUtil.beginOfDay(now);
}
}
java获取指定和当前月第一天和最后一天,上个月第一天和最后一天
于 2018-01-02 10:25:48 首次发布