详解JAVA常用的时间操作【实用】
项目中经常有对时间进行处理的需求,下面是一些常用的操作整理,方便以后再次使用以及做相关复习。
1.字符串转换为日期
/** *字符串转换为日期 *@paramdateStr需要转换的日期 *@paramdateFormat日期格式yyyy-MM-dd/yyyy-MM-ddHH:mm:ss */ publicstaticDatetoDate(StringdateStr,SimpleDateFormatdateFormat)throwsParseException{ Datedate=null; try{ date=dateFormat.parse(dateStr); }catch(ParseExceptione){ logger.debug("FailtoconvertStringtoDate,{}",dateStr); } returndate; }
2.时间戳转日期
/** *时间戳转日期 *@paramdate *@return */ publicstaticStringdateToTime(longtime,SimpleDateFormatdateFormat)throwsParseException{ Stringdata=null; try{ dateFormat.format(newDate(time*1000)); }catch(Exceptione){ logger.debug("FailtoconvertlongtoDate,{}",time); } returndata; }
3.日期格式化成字符串
/** *日期格式化成字符串 *@paramdate *@paramdateFormat *@return *@throwsParseException */ publicstaticStringtoString(Datedate,SimpleDateFormatdateFormat)throwsParseException{ returndateFormat.format(date); }
4.获取指定日期之前或之后的日期,十分秒为00:00:00
/** *获取指定日期之前或之后的日期 *@paramdate *@paramnum正数为之后,负数为之前 *@returnyyyy-MM-dd00:00:00 */ publicstaticDategetSpecificDate(Datedate,intnum){ CalendartodayCal=Calendar.getInstance(); todayCal.setTime(date); Calendarc=Calendar.getInstance(); c.set(todayCal.get(Calendar.YEAR),todayCal.get(Calendar.MONTH),todayCal.get(Calendar.DAY_OF_MONTH)+num,0,0,0); returnc.getTime(); }
5.获取指定日期之前或之后的日期,时分秒为当前的
/** *获取指定日期之前或之后的日期 *@paramdate *@paramnum正数为之前,负数为之后 *@returnyyyy-MM-dd+当前的时分秒 */ publicstaticDategetSpecificDateAndHhMmSs(Datedate,intnum){ Calendarc=Calendar.getInstance(); c.setTime(date); intday=c.get(Calendar.DATE); c.set(Calendar.DATE,day-num); returnc.getTime(); }
6.将time类型的时间字符串转换成时、分
/** *将time类型的时间字符串转换成时、分 *HH-mm-ss-->>HH-mm *@paramtime *@return */ publicstaticStringtimeToHHMM(Stringtime){ returntime.substring(0,time.length()-3); }
7.获取某个日期的时、分
/** *获取某个日期的时、分 *@paramdate *@returnHH-mm */ publicstaticStringgetHM(Datedate){ Calendarca=Calendar.getInstance(); ca.setTime(date); Integerhour=ca.get(Calendar.HOUR_OF_DAY);//小时 Integerminute=ca.get(Calendar.MINUTE);//分 Stringrs_hour=hour.toString(); Stringrs_minute=minute.toString(); if(rs_hour.length()==1){ rs_hour="0"+hour; } if(rs_minute.length()==1){ rs_minute="0"+minute; } returnrs_hour+":"+rs_minute; }
8.time类型的时间字符串-->>零点开始的秒数
/** *time类型的时间字符串-->>零点开始的秒数 *@paramtimeHH-mm/HH-mm-ss *@return */ publicstaticIntegertimeToSeconds(Stringtime){ String[]timeSplit=null; inthours=0,minutes=0,seconds=0; try{ timeSplit=time.split(":"); if(timeSplit.length==2){ hours=Integer.valueOf(timeSplit[0])*60*60; minutes=Integer.valueOf(timeSplit[1])*60; }elseif(timeSplit.length==3){ hours=Integer.valueOf(timeSplit[0])*60*60; minutes=Integer.valueOf(timeSplit[1])*60; seconds=Integer.valueOf(timeSplit[2]); }else{ logger.debug("Failtoconvertthetime,{}",time); } }catch(Exceptione){ logger.debug("Failtoconvertthetime,{}",time); throwe; } returnhours+minutes+seconds; }
9.零点开始的秒数转时间-->>HH-mm-ss
/** *零点开始的秒数转时间-->>HH-mm-ss *@paramdurationSeconds *@return */ publicstaticStringgetDuration(intdurationSeconds){ inthours=durationSeconds/(60*60); intleftSeconds=durationSeconds%(60*60); intminutes=leftSeconds/60; intseconds=leftSeconds%60; StringBuffersBuffer=newStringBuffer(); sBuffer.append(addZeroPrefix(hours)); sBuffer.append(":"); sBuffer.append(addZeroPrefix(minutes)); sBuffer.append(":"); sBuffer.append(addZeroPrefix(seconds)); returnsBuffer.toString(); } publicstaticStringaddZeroPrefix(intnumber){ if(number<10) return"0"+number; else return""+number; }
10.比较两个日期相差的秒数
/** *比较两个日期相差的秒数 *@paramstartDate *@paramendDate *@return */ publicstaticintgetTimeSeconds(DatestartDate,DateendDate){ longa=endDate.getTime(); longb=startDate.getTime(); return(int)((a-b)/1000); }
11.判断两个时间段是否存在交集
/** *比较两个日期相差的秒数 *@paramstartDate *@paramendDate *@return */ publicstaticintgetTimeSeconds(DatestartDate,DateendDate){ longa=endDate.getTime(); longb=startDate.getTime(); return(int)((a-b)/1000); }
12.获取指定日期是星期几(1-7分别代表周一至周日)
/** *获取指定日期是星期几(1-7分别代表周一至周日) *@return */ publicstaticintDayOfWeek(Datedate){ Calendarnow=Calendar.getInstance(); now.setTime(date); booleanisFirstDay=(now.getFirstDayOfWeek()==Calendar.SUNDAY); intweekday=now.get(Calendar.DAY_OF_WEEK); if(isFirstDay){ weekday=weekday-1; if(weekday==0){ weekday=7; } } returnweekday; }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!