51CTO下载Java时间操作总结代码版.docx
《51CTO下载Java时间操作总结代码版.docx》由会员分享,可在线阅读,更多相关《51CTO下载Java时间操作总结代码版.docx(33页珍藏版)》请在冰豆网上搜索。
![51CTO下载Java时间操作总结代码版.docx](https://file1.bdocx.com/fileroot1/2022-11/25/4f9cdf72-e959-4db7-a186-dcf4122dbbff/4f9cdf72-e959-4db7-a186-dcf4122dbbff1.gif)
51CTO下载Java时间操作总结代码版
直接在main函数中测试方法即可
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.ArrayList;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.List;
importjava.util.Locale;
importorg.tulip.StringUtil;
publicclassTimeUtilsextendsmons.lang.time.DateUtils
{
publicstaticfinalSimpleDateFormatdateFormat=newSimpleDateFormat(yyyy-MM-ddHHmmss);
publicstaticfinalSimpleDateFormatdateFormatHiddenHour=newSimpleDateFormat(yyyy-MM-dd);
publicstaticfinalStringgetFormatedNowTime()
{
returndateFormat.format(newDate());
}
格式化时间(yyyy-MM-ddHHmmss)
@paramdate
@return
publicstaticfinalStringgetFormatedTime(Datedate)
{
returndateFormat.format(date);
}
格式化时间
@paramdate
@return
publicstaticfinalStringgetFormatedTime(SimpleDateFormatdateFormat,Datedate)
{
returndateFormat.format(date);
}
格式化时间(yyyy-MM-dd)
@paramdate
@return
publicstaticfinalStringgetFormatedTimeHiddenHour(Datedate)
{
returndateFormatHiddenHour.format(date);
}
长整型时间转换(yyyy-MM-ddHHmmss)
@paramtimestamp
@return
publicstaticfinalStringgetFormatedTime(Longtimestamp)
{
Datedate=newDate(timestamp);
returndateFormat.format(date);
}
显示完整时间
publicstaticStringgetRecentDateString(intoffset)
{
offset与当前日期的偏移量如-1代表昨天
Datedate=newDate();
date=newDate(date.getTime()+offset86400000);
returndateFormat.format(date);
}
publicstaticStringgetRecentDateString(Datedate,intoffset)
{
offset与当前日期的偏移量如-1代表昨天
date=newDate(date.getTime()+offset86400000);
returndateFormat.format(date);
}
只显示年月日部份
publicstaticStringgetRecentDateExcludeHourString(intoffset)
{
offset与当前日期的偏移量如-1代表昨天
Datedate=newDate();
date=newDate(date.getTime()+offset86400000);
returndateFormatHiddenHour.format(date);
}
publicstaticStringgetRecentDateExcludeHourString(Stringstr,intoffset)throwsParseException
{
offset与当前日期的偏移量如-1代表昨天
Datedate=dateFormatHiddenHour.parse(str);
date=newDate(date.getTime()+offset86400000);
returndateFormatHiddenHour.format(date);
}
publicstaticStringgetRecentDateFormatString(SimpleDateFormatdateFormat,Stringstr,intoffset)throwsParseException
{
offset与当前日期的偏移量如-1代表昨天
Datedate=dateFormat.parse(str);
date=newDate(date.getTime()+offset86400000);
returndateFormat.format(date);
}
STRING日期转化为DATE型
@paramsDt
@return
@throwsParseException
publicstaticDatestringToDate(StringsDt)throwsParseException
{
returndateFormat.parse(sDt);
}
publicstaticDatestringToDateExcludeHour(StringsDt)throwsParseException
{
returndateFormatHiddenHour.parse(sDt);
}
publicstaticDatestringToFormatDate(SimpleDateFormatdateFormat,StringsDt)throwsParseException
{
returndateFormat.parse(sDt);
}
返回两个时间差,毫秒
@paramnow
@paramreturnDate
@return
publicstaticlongdaysBetween(Datenow,DatereturnDate)
{
CalendarcNow=Calendar.getInstance();
CalendarcReturnDate=Calendar.getInstance();
cNow.setTime(now);
cReturnDate.setTime(returnDate);
setTimeToMidnight(cNow);
setTimeToMidnight(cReturnDate);
longtodayMs=cNow.getTimeInMillis();
longreturnMs=cReturnDate.getTimeInMillis();
longintervalMs=todayMs-returnMs;
returnintervalMs;
}
毫秒转成实际天数
@paramintervalMs
@return
publicstaticintmillisecondsToDays(longintervalMs)
{
return(int)(intervalMs(100086400));
}
设置时间从0开始
@paramcalendar
publicstaticvoidsetTimeToMidnight(Calendarcalendar)
{
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
}
月份的最后一天
@paramymStr只包含年和月的字符串
@return
publicstaticintgetLastDayOfMonth(StringymStr){
ymStr=StringUtils.getFormatDateStr(ymStr);
intyear=Integer.parseInt(ymStr.substring(0,ymStr.indexOf(-)));
intmonth=Integer.parseInt(ymStr.substring(ymStr.indexOf(-)+1));
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,year);
c.set(Calendar.MONTH,month-1);
returnc.getActualMaximum(Calendar.DAY_OF_MONTH);
}
月份的最后一天
@paramyear
@parammonth
@return
publicstaticintgetLastDayOfMonth(intyear,intmonth)
{
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,year);
c.set(Calendar.MONTH,month);
c.set(Calendar.DATE,1);
c.add(Calendar.DATE,-1);
System.out.println(c.get(Calendar.DATE)+_+c.get(Calendar.MONTH));
returnc.getActualMaximum(Calendar.DAY_OF_MONTH);
}
月份的第一天
@paramyear
@parammonth
@return
publicstaticintgetFirstDayOfMonth(intyear,intmonth)
{
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,year);
c.set(Calendar.MONTH,month-1);
return(c.getActualMinimum(Calendar.DAY_OF_MONTH));
}
两个时间相差的月份
@parambegin
@paramend
@return
publicstaticintgetDiffMonth(Stringbegin,Stringend)
{
try
{
SimpleDateFormatmyFormatter=newSimpleDateFormat(yyyy-MM-dd);
java.util.Datedate1=myFormatter.parse(end);
java.util.Datedate2=myFormatter.parse(begin);
inty1=(date1.getYear()-date2.getYear());
intm2=y112+(date1.getMonth()-date2.getMonth());
returnm2;
}catch(Exceptione)
{
return0;
}
}
计算两个日期相隔的天数
publicstaticintgetDiffDay(StringfirstString,StringsecondString){
SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-dd);
DatefirstDate=null;
DatesecondDate=null;
try{
firstDate=df.parse(firstString);
secondDate=df.parse(secondString);
}catch(Exceptione){
日期型字符串格式错误
}
intnDay=(int)((secondDate.getTime()-firstDate.getTime())(2460601000));
returnnDay;
}
日期加法
@paramwhen被计算的日期
@paramfieldthetimefield.在Calendar中定义的常数,例如Calendar.DATE
@paramamount加数
@return计算后的日期
publicstaticDateadd(Datewhen,intfield,intamount){
Calendarcalendar=Calendar.getInstance();
calendar.setTime(when);
calendar.add(field,amount);
returncalendar.getTime();
}
计算给定的日期加上给定的天数。
@paramwhen给定的日期
@paramamount给定的天数
@return计算后的日期
publicstaticDateaddDays(Datewhen,intamount){
returnadd(when,Calendar.DAY_OF_YEAR,amount);
}
计算给定的日期加上给定的月数。
@paramwhen给定的日期
@paramamount给定的月数
@return计算后的日期
publicstaticDateaddMonths(Datewhen,intamount){
returnadd(when,Calendar.MONTH,amount);
}
获取月底
@paramyear年4位年度
@parammonth月1~12
@return月底的Date对象。
例如:
2006-3-31
publicstaticDategetMonthEnd(intyear,intmonth){
StringBuffersb=newStringBuffer(10);
Datedate;
if(month12){
sb.append(Integer.toString(year));
sb.append(-);
sb.append(month+1);
sb.append(-1);
date=switchStringToDate(sb.toString());
}else{
sb.append(Integer.toString(year+1));
sb.append(-1-1);
date=switchStringToDate(sb.toString());
}
date.setTime(date.getTime()-1);
returndate;
}
获取月底
@paramwhen要计算月底的日期
@return月底的Date对象。
例如:
2006-3-31
publicstaticDategetMonthEnd(Datewhen){
Calendarcalendar=Calendar.getInstance();
calendar.setTime(when);
intyear=calendar.get(Calendar.YEAR);
intmonth=calendar.get(Calendar.MONTH)+1;
returngetMonthEnd(year,month);
}
获取给定日的最后一刻。
@paramwhen给定日
@return最后一刻。
例如:
2006-4-19235959.999
publicstaticDategetDayEnd(Datewhen){
Datedate=truncate(when,Calendar.DATE);
date=addDays(date,1);
date.setTime(date.getTime()-1);
returndate;
}
获取给定日的第一刻。
@paramwhen给定日
@return最后一刻。
例如:
2006-4-19235959.999
publicstaticDategetDay(Datewhen){
Datedate=truncate(when,Calendar.DATE);
date=addDays(date,-1);
date.setTime(date.getTime()+1);
returndate;
}
取得系统当前时间,格式为yyyy-mm-dd
publicstaticStringgetCurrentDate()
{
CalendarrightNow=Calendar.getInstance();
intyear=rightNow.get(Calendar.YEAR);
intmonth=rightNow.get(Calendar.MONTH)+1;
intday=rightNow.get(Calendar.DATE);
returnyear+-+month+-+day;
}
取得系统当前时间,格式为yyyy年mm月dd日
publicstaticStringgetCurrentDate1()
{
CalendarrightNow=Calendar.getInstance();
intyear=rightNow.get(Calendar.YEAR);
intmonth=rightNow.get(Calendar.MONTH)+1;
intday=rightNow.get(Calendar.DATE);
returnyear+年+month+月+day+日;
}
取得系统当前时间前n个月的相对应的一天
publicstaticStringgetNMonthBeforeCurrentDay(intn)
{
Calendarc=Calendar.getInstance();
c.add(Calendar.MONTH,-n);
return+c.get(Calendar.YEAR)+-+(c.get(Calendar.MONTH)+1)+-
+c.get(Calendar.DATE);
}
取得系统当前时间后n个月的相对应的一天
publicstaticStringgetNMonthAfterCurrentDay(intn)
{
Calendarc=Calendar.getInstance();
c.add(Calendar.MONTH,n);
return+c.get(Calendar.YEAR)+-+(c.get(Calendar.MONTH)+1)+-
+c.get(Calendar.DATE);
}
取得系统当前时间前n天,格式为yyyy-mm-dd
publicstaticStringgetNDayBeforeCurrentDate(intn)
{
Calendarc=Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH,-n);
return+c.get(Calendar.YEAR)+-+(c.get(Calendar.MONTH)+1)+-
+c.get(Calendar.DATE);
}
取得系统当前时间后n天,格式为yyyy-mm-dd
publicstaticStringgetNDayAfterCurrentDate(intn)
{
Calendarc=Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH,n);
return+c.get(Calendar.YEAR)+-+(c.get(Calendar.MONTH)+1)+-
+c.get(Calendar.DATE);
}
---------------------------------------------------------------------
取过去一个时间对应的系统当年的一天
publicstaticStringgetCurrentDateAfterPastDate(StringsPastDate)
{
if(sPastDate!
=null&&!
sPastDate.equals())
{
Datedate=switchStringToDate(sPastDate);
Calendarc=Calendar.getInstance();
c.setTime(date);
intiPastYear=c.get(Calendar.YEAR);
Calendarc1=Calendar.getInstance();
intiCurrentYear=c1.