记第一次写报表接口时用到的相关时间公共类
/**
*
* @param date string类型的日期
* @param flag TRUE获取指定日期的00:00:00,FALSE获取指定日期的23:59:59
* @return
*/
public static final String datetime(String date,Boolean flag){
return DateUtils.DateToStringBeginOrEnd(DateUtils.dateTime("yyyy-MM-dd",date),flag);
}
/**
* 上一周所有日期集合
*/
public static List<String> getLastTimeInterval() {
List<String> preWeekDateList=new ArrayList<>();
SimpleDateFormat sdf=new SimpleDateFormat();
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
Calendar calendar3= Calendar.getInstance();
Calendar calendar4 = Calendar.getInstance();
Calendar calendar5 = Calendar.getInstance();
Calendar calendar6= Calendar.getInstance();
Calendar calendar7= Calendar.getInstance();
int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1;
int offset1 = 1 - dayOfWeek;
int offset2 = 7 - dayOfWeek;
calendar1.add(Calendar.DATE, offset1 - 7);
calendar2.add(Calendar.DATE, offset1 - 6);
calendar3.add(Calendar.DATE, offset1 - 5);
calendar4.add(Calendar.DATE, offset1 - 4);
calendar5.add(Calendar.DATE, offset1 - 3);
calendar6.add(Calendar.DATE, offset1 - 2);
calendar7.add(Calendar.DATE, offset2 - 7);
preWeekDateList.add(dateTime(calendar1.getTime()));
preWeekDateList.add(dateTime(calendar2.getTime()));
preWeekDateList.add(dateTime(calendar3.getTime()));
preWeekDateList.add(dateTime(calendar4.getTime()));
preWeekDateList.add(dateTime(calendar5.getTime()));
preWeekDateList.add(dateTime(calendar6.getTime()));
preWeekDateList.add(dateTime(calendar7.getTime()));
return preWeekDateList;
}
/**
* 获取当前日期是星期几<br>
*
* @param date
* @return 当前日期是星期几
*/
public static String getWeekOfDate(Date date) {
String[] weekDays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (w < 0) {
w = 0;
}
return weekDays[w];
}
/**
* 获取某一天日期的00:00:00和23:59:59
* @param date
* @param flag
* @return
*/
public static String DateToStringBeginOrEnd(Date date, Boolean flag) {
String time = null;
SimpleDateFormat dateformat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar1 = Calendar.getInstance();
if (flag) {
calendar1.setTime(date);
calendar1.set(calendar1.get(Calendar.YEAR), calendar1.get(Calendar.MONTH), calendar1.get(Calendar.DAY_OF_MONTH),
0, 0, 0);
Date beginOfDate = calendar1.getTime();
time = dateformat1.format(beginOfDate);
//System.out.println(time);
}else{
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(date);
calendar1.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH),
23, 59, 59);
Date endOfDate = calendar1.getTime();
time = dateformat1.format(endOfDate);
//System.out.println(time);
}
return time;
}
/**
* 获取指定年月的第一天
* @param year
* @param month
* @return
*/
public static String getFirstDayByYearMonth(int year, int month){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.DAY_OF_MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = cal.getTime();
return DateUtils.DateToStringBeginOrEnd(firstDate,true);
}
/**
* 获取指定年月的最后一天
* @param year
* @param month
* @return
*/
public static String getEndDayByYearMonth(int year, int month){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = cal.getTime();
return DateUtils.DateToStringBeginOrEnd(lastDate,false);
}
/**
* 获取过去第几天的日期
*
* @param past
* @return
*/
public static String getPastDate(int past) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
Date today = calendar.getTime();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String result = format.format(today);
return result;
}
/**
* 获取当前日期的上一周日期集合
*
* @return
*/
public static ArrayList<String> getDay(int intervals){
ArrayList<String> pastDaysList = new ArrayList<>();
for (int i = intervals; i >=1; i--) {
pastDaysList.add(getPastDate(i));
}
return pastDaysList;
}