详解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;
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!