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获取日期的几天前,几个月前和几年前的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。