日期相關工具類方法
阿新 • • 發佈:2018-12-12
/** * @createTime :2018年8月23日下午2:25:01 * @description :獲取當前日期的 昨日 前日 的時間範圍 * @param : */ public static Map<String,String> getTwoDaysRange(){ Map<String,String> resultMap = new HashMap<String, String>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DATE, calendar.get(calendar.DATE) -1);//昨天 calendar.set(Calendar.HOUR_OF_DAY, 0);// 時 calendar.set(Calendar.MINUTE, 0);// 分 calendar.set(Calendar.SECOND, 0);// 秒 String yesStart = sdf.format(calendar.getTime()); resultMap.put("yesStart", yesStart); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); String yesEnd = sdf.format(calendar.getTime()); resultMap.put("yesEnd", yesEnd); calendar.set(Calendar.DATE, calendar.get(calendar.DATE) -1);//前天 {包括上面的-1,這裡再-1,故整體上-2} calendar.set(Calendar.HOUR_OF_DAY, 0);// 時 calendar.set(Calendar.MINUTE, 0);// 分 calendar.set(Calendar.SECOND, 0);// 秒 String befStart = sdf.format(calendar.getTime()); resultMap.put("befStart", befStart); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); String befEnd = sdf.format(calendar.getTime()); resultMap.put("befEnd", befEnd); return resultMap; }
/** * @createTime :2018年9月21日上午10:58:17 * @description :時間新增N個小時 [N為負值 減少N小時] 2018年9月21日上午10:38:06 */ public static Date plusNhour(Date date,int N) { if(date == null){ return null; }else{ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.HOUR, N);//時 return calendar.getTime(); } }
/* * 同上plusNhour方法 * str 引數為格式為yyyy-MM-dd HH:mm:ss */ public static String plusNhourStrParam(String str,int N) throws ParseException { if(str == null || "".equals(str)){ //不做任何處理返回 }else{ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date tempDate = sdf.parse(str); Calendar calendar = Calendar.getInstance(); calendar.setTime(tempDate); calendar.add(Calendar.HOUR, N);//時 Date resDate = calendar.getTime(); str = sdf.format(resDate); } return str; }
/**
* @createTime :2018年8月22日下午4:30:16
* @description :獲取當前日期所在的 日、周、月
* @param :flag
* 0 獲取當前時間的所在日期
* 1 獲取當前時間的所在 周 第一天 和 最後一天 的日期
* 2 獲取當前時間的所在 月 第一天 和 最後一天 的日期
*/
public static Map<String,String> getYmd(String flag){
Map<String,String> resultMap = new HashMap<String, String>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);// 時
calendar.set(Calendar.MINUTE, 0);// 分
calendar.set(Calendar.SECOND, 0);// 秒
Date dateNow = calendar.getTime();
if(ConstantUtil.STRNUM0.equals(flag)){
String dateTodayStart = sdf.format(dateNow);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
String dateTodayEnd = sdf.format(calendar.getTime());
resultMap.put("start", dateTodayStart);
resultMap.put("end", dateTodayEnd);
}else if(ConstantUtil.STRNUM1.equals(flag)){
calendar.set(calendar.DAY_OF_WEEK, calendar.MONDAY);
String weekhand = sdf.format(calendar.getTime());
calendar.set(Calendar.DATE, calendar.get(calendar.DATE) + 6);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
String weeklast = sdf.format(calendar.getTime());
resultMap.put("start", weekhand);
resultMap.put("end", weeklast);
}else if(ConstantUtil.STRNUM2.equals(flag)){
calendar.add(Calendar.MONTH, 0);
calendar.set(Calendar.DAY_OF_MONTH,1);//設定為1號,當前日期既為本月第一天
String monthStart = sdf.format(calendar.getTime());
//獲取當前月最後一天
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
String monthEnd = sdf.format(calendar.getTime());
resultMap.put("start", monthStart);
resultMap.put("end", monthEnd);
}
return resultMap;
}
/*
* 日期 比較方法
*/
public static String dateCompar(Date d1,Date d2){
Calendar calendar = Calendar.getInstance();
calendar.setTime(d1);
int day1 = calendar.get(Calendar.DAY_OF_YEAR);
calendar.setTime(d2);
int day2 = calendar.get(Calendar.DAY_OF_YEAR);
if((day2 - day1) == 0){
return "0";
}else if((day2 - day1) > 0){
return "-1";
}else{
return "1";
}
}