java 获取日期的几天前,几个月前和几年前的实例
实例如下:
packagebys.utils;
importjava.util.Date;
/**
*Createdbytoutouon2015/3/23.
*/
publicclassDateHelper{
publicstaticfinallongONE_MINUTE=60000L;
publicstaticfinallongONE_HOUR=3600000L;
publicstaticfinallongONE_DAY=86400000L;
publicstaticfinallongONE_WEEK=604800000L;
privatestaticfinalStringONE_SECOND_AGO="秒前";
privatestaticfinalStringONE_MINUTE_AGO="分钟前";
privatestaticfinalStringONE_HOUR_AGO="小时前";
privatestaticfinalStringONE_DAY_AGO="天前";
privatestaticfinalStringONE_MONTH_AGO="月前";
privatestaticfinalStringONE_YEAR_AGO="年前";
privatestaticlongtoSeconds(longdate){
returndate/1000L;
}
privatestaticlongtoMinutes(longdate){
returntoSeconds(date)/60L;
}
privatestaticlongtoHours(longdate){
returntoMinutes(date)/60L;
}
privatestaticlongtoDays(longdate){
returntoHours(date)/24L;
}
privatestaticlongtoMonths(longdate){
returntoDays(date)/30L;
}
privatestaticlongtoYears(longdate){
returntoMonths(date)/365L;
}
publicstaticStringgetPastTime(Datedate){
longdelta=newDate().getTime()-date.getTime();
if(delta<1L*ONE_MINUTE){
longseconds=toSeconds(delta);
return(seconds<=0?1:seconds)+ONE_SECOND_AGO;
}
if(delta<45L*ONE_MINUTE){
longminutes=toMinutes(delta);
return(minutes<=0?1:minutes)+ONE_MINUTE_AGO;
}
if(delta<24L*ONE_HOUR){
longhours=toHours(delta);
return(hours<=0?1:hours)+ONE_HOUR_AGO;
}
if(delta<48L*ONE_HOUR){
return"昨天";
}
if(delta<30L*ONE_DAY){
longdays=toDays(delta);
return(days<=0?1:days)+ONE_DAY_AGO;
}
if(delta<12L*4L*ONE_WEEK){
longmonths=toMonths(delta);
return(months<=0?1:months)+ONE_MONTH_AGO;
}else{
longyears=toYears(delta);
return(years<=0?1:years)+ONE_YEAR_AGO;
}
}
}
调用示例:
Stringtime=DateHelper.getPastTime(Date.from(item.getCreateTime().atZone(ZoneId.systemDefault()).toInstant()));
以上这篇java获取日期的几天前,几个月前和几年前的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。