每日英文
Whatever you are facing today, remember to give yourself some credit for making it this far. You are stronger than you know.
无论你今天要面对什么,既然走到了这一步,就奋 斗下去,给自己一些肯定,你比自己想象中要坚强。
卯卯有话说
人生须有四得,既沉得住气,变得了脸,弯得下腰,抬得起头。人生须有四种经历,耐得住寂寞,经得起考验,承受了压力,面对了孤独。
正文
importjava.text.ParseException;
importjava.text.ParsePosition;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.GregorianCalendar;
importorg.apache.commons.lang.time.DateFormatUtils;
/**
* 所有注释以2018-05-03日期为准
*/
public classDateUtils{
public static finalStringymdhms="yyyy-MM-dd HH:mm:ss";
public static finalStringymd="yyyy-MM-dd";
public static finalStringyymmdd="yy-MM-dd";
public static finalStringmd="MM-dd";
public static finalStringymdhm="yyyy-MM-dd HH:mm";
public static finalStringmdhm="MM-dd HH:mm";
privateDateUtil() {
}
/**
* 获得年月日 格式:2018-05-03
*@paramdate
*@return
*/
public staticStringgetYmd(Datedate) {
returndate ==null?"":DateFormatUtils.format(date,"yyyy-MM-dd");
}
/**
* 获得年月日 格式:18-05-03
*@paramdate
*@return
*/
public staticStringgetYymmdd(Datedate) {
returndate ==null?"":DateFormatUtils.format(date,"yy-MM-dd");
}
/**
* 获得月日 格式:05-03
*@paramdate
*@return
*/
public staticStringgetMd(Datedate) {
returndate ==null?"":DateFormatUtils.format(date,"MM-dd");
}
/**
* 获得年月日 时分秒 格式:2018-05-03 14:32:36
*@paramdate
*@return
*/
public staticStringgetYmhmsd(Datedate) {
returndate ==null?"":DateFormatUtils.format(date,"yyyy-MM-dd HH:mm:ss");
}
/**
* 获得年月日 时分 格式:2018-05-03 14:32
*@paramdate
*@return
*/
public staticStringgetYmdhm(Datedate) {
returndate ==null?"":DateFormatUtils.format(date,"yyyy-MM-dd HH:mm");
}
/**
* 获得月日 时分 格式:05-03 14:32
*@paramdate
*@return
*/
public staticStringgetMdhm(Datedate) {
returndate ==null?"":DateFormatUtils.format(date,"MM-dd HH:mm");
}
/**
* 转换yyyy-MM-dd格式的字符串成Date格式
*@paramdate
*@return
*/
public staticDateparseYmd(Stringdate) {
SimpleDateFormat format=newSimpleDateFormat("yyyy-MM-dd");
ParsePosition pos=newParsePosition();
returnformat.parse(date,pos);
}
/**
* 转换yyyy-MM-dd HH:mm格式的字符串成Date格式
*@paramdate
*@return
*/
public staticDateparseYmdhm(Stringdate) {
SimpleDateFormat format=newSimpleDateFormat("yyyy-MM-dd HH:mm");
ParsePosition pos=newParsePosition();
returnformat.parse(date,pos);
}
/**
* 转换MM-dd HH:mm格式的字符串成Date格式
*@paramdate
*@return
*/
public staticDateparsemdhm(Stringdate) {
SimpleDateFormat format=newSimpleDateFormat("MM-dd HH:mm");
ParsePosition pos=newParsePosition();
returnformat.parse(date,pos);
}
/**
* 转换yyyy-MM-dd HH:mm:ss格式的字符串成Date格式
*@paramdate
*@return
*/
public staticDateparseYmdhms(Stringdate) {
SimpleDateFormat format=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ParsePosition pos=newParsePosition();
returnformat.parse(date,pos);
}
/**
* 格式化Date类型为格式yyyy-MM-dd HH:mm:ss的字符串
*@paramdate
*@return
*/
public staticStringformat(Datedate) {
try{
returnDateFormatUtils.format(date,"yyyy-MM-dd HH:mm:ss");
}catch(Exceptionvar2) {
return null;
}
}
/**
* 格式化Date类型为pattern格式的字符串
*@paramdate
*@return
*/
public staticStringformat(Datedate,Stringpattern) {
try{
returnDateFormatUtils.format(date,pattern);
}catch(Exceptionvar3) {
return null;
}
}
/**
* 指定格式的字符串日期进行累加年月日 例如:GetSysDate("yyyy-MM-dd","1990-01-01",1,2,3) 结果为 1991-03-04
*@paramformatStrDate的字符串是什么格式
*@paramStrDate时间字符串
*@paramyear年
*@parammonth月
*@paramday日
*@return
*/
public staticStringGetSysDate(Stringformat,StringStrDate,intyear,intmonth,intday) {
Calendar cal=Calendar.getInstance();
SimpleDateFormat sFmt=newSimpleDateFormat(format);
cal.setTime(sFmt.parse(StrDate,newParsePosition()));
if(day !=) {
cal.add(5,day);
}
if(month !=) {
cal.add(2,month);
}
if(year !=) {
cal.add(1,year);
}
returnsFmt.format(cal.getTime());
}
/**
* 获得两个时间字符串之间的天数差 时间字符串的格式为yyyy-MM-dd
*@parambegin
*@paramend
*@return
*/
public static longgetInterval(Stringbegin,Stringend) {
try{
Date e=parse(begin,"yyyy-MM-dd");
Date endTime=parse(end,"yyyy-MM-dd");
longday=0L;
day= (e.getTime() -endTime.getTime()) /86400000L;
returnday;
}catch(Exceptionvar6) {
throw newRuntimeException(var6);
}
}
/**
* 获得两个时间之间的天数差
*@parambeginTime
*@paramendTime
*@return
*/
public static longgetInterval(DatebeginTime,DateendTime) {
try{
longe=0L;
e= (beginTime.getTime() - endTime.getTime()) /86400000L;
returne;
}catch(Exceptionvar4) {
throw newRuntimeException(var4);
}
}
/**
* 根据秒进行相加差值并返回 比如 System.out.println(DateUtil.getDelay("2018-05-03",86400,"yyyy-MM-dd",2)); 结果:2018-05-05
*@paramnow
*@paramdelay
*@parampattern
*@paramtime
*@return
*/
public staticStringgetDelay(Stringnow,Integerdelay,Stringpattern,Integertime) {
String delayDate=null;
try{
Date e=parse(now,pattern);
longdelayTime=e.getTime() /1000L+ (long)(delay.intValue() * time.intValue());
e.setTime(delayTime*1000L);
delayDate=DateFormatUtils.format(e,pattern);
returndelayDate;
}catch(Exceptionvar8) {
return null;
}
}
/**
* 获得上一个月的第一天 例如:DateUtil.getPreMonthFirst("2018-05-03","yyyy-MM-dd") 结果:2018-04-01
*@paramnow
*@parampattern
*@return
*/
public staticStringgetPreMonthFirst(Stringnow,Stringpattern) {
Calendar c=Calendar.getInstance();
c.setTime(parse(now,pattern));
c.set(5,1);
c.add(2,-1);
returnDateFormatUtils.format(c,"yyyy-MM-dd");
}
/**
* 给目标时间添加天数 例如:DateUtil.getDelayDay("2018-05-03 15:01",5,"yyyy-MM-dd HH:mm") 结果:2018-05-08 15:01
*@paramnow
*@paramdelay
*@parampattern
*@return
*/
public staticStringgetDelayDay(Stringnow,Integerdelay,Stringpattern) {
returngetDelay(now,delay,pattern,Integer.valueOf(86400));
}
/**
* 给目标时间添加小时数 例如:DateUtil.getDelayHour("2018-05-03 15:01",5,"yyyy-MM-dd HH:mm") 结果:2018-05-03 20:01
*@paramnow
*@paramdelay
*@parampattern
*@return
*/
public staticStringgetDelayHour(Stringnow,Integerdelay,Stringpattern) {
returngetDelay(now,delay,pattern,Integer.valueOf(3600));
}
/**
* 给目标时间添加分钟数 例如:DateUtil.getDelayMinute("2018-05-03 15:01",5,"yyyy-MM-dd HH:mm") 结果:2018-05-03 15:06
*@paramnow
*@paramdelay
*@parampattern
*@return
*/
public staticStringgetDelayMinute(Stringnow,Integerdelay,Stringpattern) {
returngetDelay(now,delay,pattern,Integer.valueOf(60));
}
/**
* 根据pattern的格式来格式化date
*@paramdate
*@parampattern
*@return
*/
public staticDateparse(Stringdate,Stringpattern) {
SimpleDateFormat format=newSimpleDateFormat(pattern);
ParsePosition pos=newParsePosition();
returnformat.parse(date,pos);
}
/**
* 格式化Date为yyyy-MM-dd
*@paramdate
*@return
*/
public staticDateparse(Stringdate) {
SimpleDateFormat format=newSimpleDateFormat("yyyy-MM-dd");
ParsePosition pos=newParsePosition();
returnformat.parse(date,pos);
}
/**
* 获得今天星期几 例如:DateUtil.getWeek(new Date()) 结果:星期四
*@paramdate
*@return
*/
public staticStringgetWeek(Datedate) {
Calendar c=Calendar.getInstance();
c.setTime(date);
returnDateFormatUtils.format(c,"EEEE");
}
/**
* 格式为yyyy-MM-dd的时间字符串添加天数 例如:DateUtil.getAddCountDay(1,"2018-05-03") 结果:2018-05-04
*@paramcount
*@paramday
*@return
*/
public staticStringgetAddCountDay(intcount,Stringday) {
SimpleDateFormat simpleDate2=newSimpleDateFormat("yyyy-MM-dd");
simpleDate2.setLenient(false);
try{
Date myDate=simpleDate2.parse(day);
Long e=Long.valueOf(myDate.getTime() /1000L+ (long)(86400* count));
myDate.setTime(e.longValue() *1000L);
returnsimpleDate2.format(myDate);
}catch(ParseExceptionvar5) {
returnday;
}
}
/**
* 时间添加天数 例如:DateUtil.getAddCountDay(1,new Date()) 结果:Fri May 04 15:06:55 CST 2018
*@paramcount
*@paramdate
*@return
*/
public staticDategetAddCountDay(intcount,Datedate) {
Long myTime=Long.valueOf(date.getTime() /1000L+ (long)(86400* count));
date.setTime(myTime.longValue() *1000L);
returndate;
}
/**
* 对比两个时间的时间差 例如:DateUtil.contrastStringDate("2018-05-03","2018-05-04") 结果:1
*@paramdate1
*@paramdate2
*@return
*/
public static intcontrastStringDate(Stringdate1,Stringdate2) {
intday=;
SimpleDateFormat sf=newSimpleDateFormat("yyyy-MM-dd");
newGregorianCalendar();
newGregorianCalendar();
newDate();
newDate();
try{
Date xxx1=sf.parse(date1);
Date xxx2=sf.parse(date2);
day= (int)((xxx2.getTime() -xxx1.getTime()) /3600L/24L/1000L);
}catch(ParseExceptionvar9) {
}
returnday;
}
/**
* 计算两个时间点的分钟差值
*@paramstart
*@paramend
*@return
*/
public static longhasMinute(Datestart,Dateend) {
try{
System.out.println(start +"======="+ end);
longe= end.getTime() - start.getTime();
System.out.println(end.getTime() +"========"+ start.getTime());
e/=60000L;
returne;
}catch(Exceptionvar4) {
return0L;
}
}
/**
* 获得这个月最后一天的日期 例如:DateUtil.getLastDayOfMonth("2018-05-03") 结果:2018-05-31
*@paramdate
*@return
*/
public staticStringgetLastDayOfMonth(Stringdate) {
String[]ss= date.split("-");
Calendar cal=Calendar.getInstance();
cal.set(1,Integer.valueOf(ss[]).intValue());
cal.set(2,Integer.valueOf(ss[1]).intValue() -1);
intmaxDay=cal.getActualMaximum(5);
returnss[] +"-"+ss[1] +"-"+maxDay;
}
/**
* 不知道这是啥玩意 有待研究 哈哈哈
*@paramyear
*@paramweek
*@parammonth
*@return
*/
public staticStringgetDateByWeek(intyear,intweek,intmonth) {
String ret="";
Calendar c=Calendar.getInstance();
c.set(year,,1);
intday_week=c.get(7);//星期几
c.add(5,7* week - (day_week-1));//添加这么多天
System.out.println(c.get(2));//第几月
System.out.println(c.get(7));//星期几
System.out.println(c.get(5));//日期
if(month -c.get(2) !=1) {
ret=ret+"1-";
c.add(5,6);
ret=ret+c.get(5);
}else{
intsun_week=c.get(5);
ret=ret+sun_week+"-";
c.add(5,6);
intsat_week=c.get(5);
if(sat_week>sun_week) {
ret=ret+sat_week;
}else{
ret=ret+ (6-sat_week+sun_week);
}
}
returnret;
}
/**
* 获得时间一与时间二直接的月差值
*@paramdate1
*@paramdate2
*@return
*/
public static intgetMonthInterval(Stringdate1,Stringdate2) {
try{
SimpleDateFormat e=newSimpleDateFormat("yyyy-MM");
Calendar cal1=Calendar.getInstance();
cal1.setTime(e.parse(date1));
Calendar cal2=Calendar.getInstance();
cal2.setTime(e.parse(date2));
return(cal2.get(1) -cal1.get(1)) *12+ (cal2.get(2) -cal1.get(2));
}catch(Exceptionvar5) {
var5.printStackTrace();
return;
}
}
/**
* 给yyyy-MM格式的时间添加n个月
*@paramdate
*@paramn
*@return
*/
public staticStringgetAddCountMonth(Stringdate,intn) {
try{
SimpleDateFormat e=newSimpleDateFormat("yyyy-MM");
Calendar c=Calendar.getInstance();
c.setTime(e.parse(date));
c.add(2,n);
returne.format(c.getTime());
}catch(Exceptionvar4) {
var4.printStackTrace();
return null;
}
}
/**
* yyyy-MM-dd的时间字符串 获得今天星期几
*@paramdate
*@return
*/
public static intgetThisDateOfWeek(Stringdate) {
try{
SimpleDateFormat e=newSimpleDateFormat("yyyy-MM-dd");
Calendar cd=Calendar.getInstance();
cd.setTime(e.parse(date));
intdayOfWeek=cd.get(7) -1;
returndayOfWeek;
}catch(ParseExceptionvar4) {
var4.printStackTrace();
return-1;
}
}
/**
* 获得这个月的第一天的日期
*@paramdate
*@return
*/
public staticStringgetFirstDayOfMonth(Stringdate) {
String[]ss= date.split("-");
Calendar cal=Calendar.getInstance();
cal.set(1,Integer.valueOf(ss[]).intValue());
cal.set(2,Integer.valueOf(ss[1]).intValue() -1);
intminDay=cal.getActualMinimum(5);
returnminDay
}
/**
* 获得今年第一天的日期
*@return
*/
public staticDategetCurrYearFirst() {
Calendar currCal=Calendar.getInstance();
intcurrentYear=currCal.get(1);
returngetYearFirst(currentYear);
}
/**
* 获得指定年的第一天的日期
*@paramyear
*@return
*/
public staticDategetYearFirst(intyear) {
Calendar calendar=Calendar.getInstance();
calendar.clear();
calendar.set(1,year);
Date currYearFirst=calendar.getTime();
returncurrYearFirst;
}
/**
* 获得指定年的最后一天
*@paramyear
*@return
*/
public staticDategetCurrYearLast(intyear) {
Calendar calendar=Calendar.getInstance();
calendar.clear();
calendar.set(1,year);
calendar.roll(6,-1);
Date currYearLast=calendar.getTime();
returncurrYearLast;
}
/**
* 判断传入的值是不是今年的第一天
*@paramdate
*@return
*/
public static booleanjudgeIsFirstDayOfYear(Stringdate) {
Date firstDay=getYearFirst(Integer.parseInt(format(parse(date),"yyyy")));
returnformat(parse(date),"yyyy-MM-dd").equals(format(firstDay,"yyyy-MM-dd"));
}
/**
* 判断传入的时间是不是年的最后一天
*@paramdate
*@return
*/
public static booleanjudgeIsLastDayOfYear(Stringdate) {
Date lastDay=getCurrYearLast(Integer.parseInt(format(parse(date),"yyyy")));
returnformat(parse(date),"yyyy-MM-dd").equals(format(lastDay,"yyyy-MM-dd"));
}
/**
* 判断传入的时间是不是月的第一天
*@paramdate
*@return
*/
public static booleanjudgeIsFirstDayOfMonth(Stringdate) {
String firstDay=getFirstDayOfMonth(date);
returndate.equals(firstDay);
}
/**
* 判断传入的时间是不是月的最后一天
*@paramdate
*@return
*/
public static booleanjudgeIsLastDayOfMonth(Stringdate) {
String lastDay=getLastDayOfMonth(date);
returndate.equals(lastDay);
}
/**
* 获得今天开始的时间 比如:DateUtil.getYmhmsd(DateUtil.getStartTimeOfDay(new Date())) 结果:2018-05-03 00:00:00
*@paramdate
*@return
*/
public staticDategetStartTimeOfDay(Datedate) {
Calendar day=Calendar.getInstance();
day.setTime(date);
day.set(11,);
day.set(12,);
day.set(13,);
day.set(14,);
returnday.getTime();
}
/**
* 获得今天结束时间 例如:DateUtil.getYmhmsd(DateUtil.getEndTimeOfDay(new Date())) 结果:2018-05-03 23:59:59
*@paramdate
*@return
*/
public staticDategetEndTimeOfDay(Datedate) {
Calendar day=Calendar.getInstance();
day.setTime(date);
day.set(11,23);
day.set(12,59);
day.set(13,59);
day.set(14,999);
returnday.getTime();
}
/**
* 获得今天开始的时间
*@return
*/
public staticDategetTimesmorning() {
Calendar cal=Calendar.getInstance();
cal.set(11,);
cal.set(13,);
cal.set(12,);
cal.set(14,);
returncal.getTime();
}
/**
* 获得昨天开始的时间
*@return
*/
public staticDategetYesterdaymorning() {
Calendar cal=Calendar.getInstance();
cal.setTimeInMillis(getTimesmorning().getTime() -86400000L);
returncal.getTime();
}
/**
* 获得今天开始减去七天 也就是上周的今天的开始时间 比如:DateUtil.getYmhmsd(DateUtil.getWeekFromNow()) 结果:2018-04-26 00:00:00
*@return
*/
public staticDategetWeekFromNow() {
Calendar cal=Calendar.getInstance();
cal.setTimeInMillis(getTimesmorning().getTime() -604800000L);
returncal.getTime();
}
/**
* 获得今天晚上的时间
*@return
*/
public staticDategetTimesnight() {
Calendar cal=Calendar.getInstance();
cal.set(11,24);
cal.set(13,);
cal.set(12,);
cal.set(14,);
returncal.getTime();
}
/**
* 获得这周开始的时间
*@return
*/
public staticDategetStartOfThisWeek() {
GregorianCalendar currentDate=newGregorianCalendar();
currentDate.setFirstDayOfWeek(2);
currentDate.set(11,);
currentDate.set(12,);
currentDate.set(13,);
currentDate.set(7,2);
returncurrentDate.getTime();
}
/**
* 获得这周结束的时间
*@return
*/
public staticDategetEndOfThisWeek() {
GregorianCalendar currentDate=newGregorianCalendar();
currentDate.setFirstDayOfWeek(2);
currentDate.set(11,23);
currentDate.set(12,59);
currentDate.set(13,59);
currentDate.set(7,1);
returncurrentDate.getTime();
}
/**
* 获得这个月开始的时间
*@return
*/
public staticDategetTimesMonthmorning() {
Calendar cal=Calendar.getInstance();
cal.set(cal.get(1),cal.get(2),cal.get(5),,,);
cal.set(5,cal.getActualMinimum(5));
returncal.getTime();
}
/**
* 获得这个月结束的时间
*@return
*/
public staticDategetTimesMonthnight() {
Calendar cal=Calendar.getInstance();
cal.set(cal.get(1),cal.get(2),cal.get(5),,,);
cal.set(5,cal.getActualMaximum(5));
cal.set(11,24);
returncal.getTime();
}
/**
* 获得下一个月开始的时间
*@return
*/
public staticDategetLastMonthStartMorning() {
Calendar cal=Calendar.getInstance();
cal.setTime(getTimesMonthmorning());
cal.add(2,-1);
returncal.getTime();
}
/**
* 获得上一个月开始的时间
*@return
*/
public staticDategetCurrentQuarterStartTime() {
Calendar c=Calendar.getInstance();
intcurrentMonth=c.get(2) +1;
SimpleDateFormat longSdf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat shortSdf=newSimpleDateFormat("yyyy-MM-dd");
Date now=null;
try{
if(currentMonth>=1&¤tMonth
c.set(2,);
}else if(currentMonth>=4&¤tMonth
c.set(2,3);
}else if(currentMonth>=7&¤tMonth
c.set(2,4);
}else if(currentMonth>=10&¤tMonth
c.set(2,9);
}
c.set(5,1);
now=longSdf.parse(shortSdf.format(c.getTime()) +" 00:00:00");
}catch(Exceptionvar6) {
var6.printStackTrace();
}
returnnow;
}
/**
* 获得上一个月结束的时间
*@return
*/
public staticDategetCurrentQuarterEndTime() {
Calendar cal=Calendar.getInstance();
cal.setTime(getCurrentQuarterStartTime());
cal.add(2,3);
returncal.getTime();
}
/**
* 获得当前年开始的时间
*@return
*/
public staticDategetCurrentYearStartTime() {
Calendar cal=Calendar.getInstance();
cal.set(cal.get(1),cal.get(2),cal.get(5),,,);
cal.set(5,cal.getActualMinimum(1));
returncal.getTime();
}
/**
* 获得当前年结束的时间
*@return
*/
public staticDategetCurrentYearEndTime() {
Calendar cal=Calendar.getInstance();
cal.setTime(getCurrentYearStartTime());
cal.add(1,1);
returncal.getTime();
}
/**
* 获得下一年开始的时间
*@return
*/
public staticDategetLastYearStartTime() {
Calendar cal=Calendar.getInstance();
cal.setTime(getCurrentYearStartTime());
cal.add(1,-1);
returncal.getTime();
}
/**
* 给出分钟数 计算小时 比如:DateUtil.secToTime(61) 结果:01:01
*@paramtime
*@return
*/
public staticStringsecToTime(inttime) {
String timeStr=null;
booleanhour=false;
booleanminute=false;
booleansecond=false;
if(time
return"00:00";
}else{
intminute1= time /60;
intsecond1;
if(minute1
second1= time %60;
timeStr=unitFormat(minute1) +":"+unitFormat(second1);
}else{
inthour1=minute1/60;
if(hour1>99) {
return"99:59:59";
}
minute1%=60;
second1= time -hour1*3600-minute1*60;
timeStr=unitFormat(hour1) +":"+unitFormat(minute1) +":"+unitFormat(second1);
}
returntimeStr;
}
}
/**
* 给1-9的数字前面加上0 比如:DateUtil.unitFormat(1) 结果:01
*@parami
*@return
*/
public staticStringunitFormat(inti) {
String retStr=null;
if(i >=&& i
retStr="0"+Integer.toString(i);
}else{
retStr=""+ i;
}
returnretStr;
}
public static voidmain(String[] args) {
Date date=getEndOfThisWeek();
System.out.println(date);
}
}
领取专属 10元无门槛券
私享最新 技术干货