一些Java的公用方法:
1:获取当前时间
2:判断当前时间是否在时间date2之前
3:比较时间大小
4:获取某个时间的前n个小时
5:返回某个字符串时间的Calendar对象
6:判断两个时间段是否有重叠
7:获取前后n周的周x
8:获取过去12个月份yyyy-MM
1.获取当前时间
public staticString getToday() {
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date= newDate();
String today=formatter.format(date);returntoday;
}
2.判断当前时间是否在时间date2之前
/*** 时间格式 2018-4-21 16:16:34
*@paramdate2
*@return
*/
public static booleanisDateBefore(String date2) {try{
Date date1= newDate();
DateFormat df=DateFormat.getDateTimeInstance();returndate1.before(df.parse(date2));
}catch(ParseException e) {return false;
}
}
3.比较时间大小
//比较时间大小 date1
public static booleancompareMinDate(String date1, String date2)throwsParseException {
Date d1=convertToCalendar(date1).getTime();
Date d2=convertToCalendar(date2).getTime();returnd1.before(d2);
}
4.获取某个时间的前n个小时
//获取某个时间的前n小时
public static String getBeforeNHour(int n, String nowTime, String pattern) throwsException {
SimpleDateFormat sdf= newSimpleDateFormat(pattern);
Date date= null;
date=sdf.parse(nowTime);
Calendar cal=Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.HOUR, n);returnsdf.format(cal.getTime());
}
5.返回某个字符串时间的Calendar对象
//返回某个字符串时间的Calendar对象
public static Calendar convertToCalendar(String date) throwsParseException {
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d=sdf.parse(date);
GregorianCalendar calendar= newGregorianCalendar();
calendar.setTime(d);returncalendar;
}
6.判断两个时间段是否有重叠
2个时间段:
begin2, end2
beginTime, endTime
公式:
begin2<= endTime and end2 >=beginTimeif (compareHours(begin2, endTime)>0 && compareHours(beginTime, end2)>0) {
errorMsg= "重叠了";break;
}
7.获取前后n周的周x
privateString getLastMonday() {
Calendar cal=Calendar.getInstance();//n为推迟的周数,1本周,-1向前推迟一周,2下周,依次类推
int n = -1;
String monday;
cal.add(Calendar.DATE, n* 7);//想周几,这里就传几Calendar.MONDAY(TUESDAY...)
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
monday= new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());returnmonday;
}
8.获取过去12个月份yyyy-MM
privateString[] getLast12Months(){
DecimalFormat df= new DecimalFormat("00");
String[] last12Months= new String[12];
Calendar cal=Calendar.getInstance();
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+1); //先+1,才能把本月进去
for(int i=0; i<12; i++){
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1); //逐次往前推1个月
last12Months[i] = cal.get(Calendar.YEAR)+ "-" + df.format(cal.get(Calendar.MONTH)+1);
}returnlast12Months;
}