在实际项目中,我们可能需要用到一些时间工具类来做实现一些需求,下面是常用的一些各种时间统计的实现。
/**
* 获取本周的最后一天
* @return String
**/
public static String getCurrWeekEnd() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, cal.getActualMaximum(Calendar.DAY_OF_WEEK));
cal.add(Calendar.DAY_OF_WEEK, 1);
Date time = cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time) + " 23:59:59";
}
/**
* 获取本周的第一天
* @return String
**/
public static String getCurrWeekStart() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.WEEK_OF_MONTH, 0);
cal.set(Calendar.DAY_OF_WEEK, 2);
Date time = cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time) + " 00:00:00";
}
/**
* 获取本月的第一天
* @return String
**/
public static String getCurrMonthStart() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date time = cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time) + " 00:00:00";
}
/**
* 获取本月的最后一天
* @return String
**/
public static String getCurrMonthEnd() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
Date time = cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time) + " 23:59:59";
}
/**
* 获取上个月的第一天
* @return String
**/
public static String getLastMonthStart() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date time = cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time) + " 00:00:00";
}
/**
* 获取上个月的最后一天
* @return String
**/
public static String getLastMonthEnd() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
Date time = cal.getTime();
return new SimpleDateFormat("yyyy-MM-dd").format(time) + " 23:59:59";
}
/**
* 判断某天是否为周末
* @param date
* @return
*/
public static boolean isWeekend(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY ||
calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY;
}
/**
* 获取7天前的日期
* @return
*/
public static String getSevenDayBefore1() {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -6);
return dateFormat.format(calendar.getTime());
}
/**
* 获取近7天的日期
* @param date
* @return
*/
public static List<String> get7Day(Date date){
List<String> list = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
list.add(sdf.format(calendar.getTime()));
for(int i = 6;i>0;i--){
calendar.add(Calendar.DATE, -1);
list.add(sdf.format(calendar.getTime()));
}
return list;
}
/**
* 获取近12个月
* @return
*/
public static List<String> get12Month() {
List<String> list = new ArrayList<>();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM");
for (int i = 11; i > 0; i--) {
Calendar calendar = Calendar.getInstance();
//获取当前时间的前11个月
calendar.add(Calendar.MONTH,-i);
Date date = calendar.getTime();
list.add(sdf.format(date));
}
//将本月添加到list中
list.add(sdf.format(Calendar.getInstance().getTime()));
return list;
}
/**
* 根据日期格式yyyy-MM-dd获取Date类型时间
* @param date
* @return
*/
public static Date parseDate(String date) {
try {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
return dateFormat.parse(date);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}