配色: 字号:
DateUtil
2013-10-25 | 阅:  转:  |  分享 
  
packagecom.jw.magicbpm.util;



importjava.text.DateFormat;

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

importjava.util.Calendar;

importjava.util.Date;

importjava.util.Locale;

importjava.util.StringTokenizer;



importjava.util.GregorianCalendar;



/



@authorAdministrator



/

publicclassDateTools{



publicDateTools(){

}



/

取得系统时间



@paramKind

返回值的类型1:yyyyMMdd2:yyyy/MM/dd3:hhmmss4:hh:mm:ss

5:yyyyMMddhhmmss6:yyyy/MM/ddhh:mm:ss7:

yyyy/MM/dd|hh:mm:ss8:yyyyMMddhhmmss9:yyyy-MM-dd10:

yyyy-MM-ddhh:mm:ss11:yyyy年MM月dd日12:yyyy13:MMdd

@return系统时间

@throwsException

异常

/

publicstaticStringgetServerDateTime(intKind){

SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd-HH-mm-ss");

DatecurrentTime=newjava.util.Date();

StringstrDate=formatter.format(currentTime);

StringTokenizertoken=newStringTokenizer(strDate,"-");

Stringyear=token.nextToken();

Stringmonth=token.nextToken();

Stringday=token.nextToken();

Stringhh=token.nextToken();

Stringmm=token.nextToken();

Stringss=token.nextToken();

StringstrServerDateTime="";

switch(Kind){

case1:

strServerDateTime=year+month+day;

break;

case2:

strServerDateTime=year+"/"+month+"/"+day;

break;

case3:

strServerDateTime=hh+mm+ss;

break;

case4:

strServerDateTime=hh+":"+mm+":"+ss;

break;

case5:

strServerDateTime=year+month+day+""+hh+mm+ss;

break;

case6:

strServerDateTime=year+"/"+month+"/"+day+""+hh+":"

+mm+":"+ss;

break;

case7:

strServerDateTime=year+"/"+month+"/"+day+"|"+hh+":"

+mm+":"+ss;

break;

case8:

strServerDateTime=year+month+day+hh+mm+ss;

break;

case9:

strServerDateTime=year+"-"+month+"-"+day;

break;

case10:

strServerDateTime=year+"-"+month+"-"+day+""+hh+":"

+mm+":"+ss;

break;

case11:

strServerDateTime=year+"年"+month+"月"+day+"日";

break;

case12:

strServerDateTime=year;

break;

case13:

strServerDateTime=month+day;

break;

case14:

strServerDateTime=hh;

break;

case15:

strServerDateTime=year+month;

break;

case16:

strServerDateTime=hh+":"+mm;

break;

default:

break;

}

returnstrServerDateTime;

}



/

取得某个日期段的开始日期



@paramKind

返回值的类型1:今天2:昨天3:明天4:本周5:上周6:下周7:本月8:上月9:下月

@return开始日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetDateFrom(intkind){

if(kind==1){//今天

returngetTodayFrom();

}

if(kind==2){//昨天

returngetYestodayFrom();

}

if(kind==3){//明天

returngetNextdayFrom();

}

if(kind==4){//本周

returngetWeekFrom();

}

if(kind==5){//上周

returngetPreWeekFrom();

}

if(kind==6){//下周

returngetNextWeekFrom();

}

if(kind==7){//本月

returngetMonthFrom();

}

if(kind==8){//上月

returngetPreMonthFrom();

}

if(kind==9){//下月

returngetNextMonthFrom();

}

return"";

}



/

取得某个日期段的结束日期



@paramKind

返回值的类型1:今天2:昨天3:明天4:本周5:上周6:下周7:本月8:上月9:下月

@return结束日期格式:yyyy-MM-dd"23:59:59"

/

publicstaticStringgetDateTo(intkind){

if(kind==1){//今天

returngetTodayTo();

}

if(kind==2){//昨天

returngetYestodayTo();

}

if(kind==3){//明天

returngetNextdayTo();

}

if(kind==4){//本周

returngetWeekTo();

}

if(kind==5){//上周

returngetPreWeekTo();

}

if(kind==6){//下周

returngetNextWeekTo();

}

if(kind==7){//本月

returngetMonthTo();

}

if(kind==8){//上月

returngetPreMonthTo();

}

if(kind==9){//下月

returngetNextMonthTo();

}

return"";

}



/

根据传进的日期,以及X得到X天后的日期



@return日期格式:yyyy-MM-dd

/

publicstaticStringgetAfterDate(Stringdate,intseveral)throwsException

{

//Datenow=newDate();

SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");

//System.out.println("NowDateis-->"+sdf.format(now));

Calendarcal=Calendar.getInstance();

cal.setTime(sdf.parse(date));

longdays=several;

longtimeone=cal.getTimeInMillis();

longresult=timeone+days2460601000;

DategetDate=newDate(result);

//System.out.println("resulttime-->"+sdf.format(getDate));

returnsdf.format(getDate).toString();

}



/

取得上个月的开始日期



@return开始日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetPreMonthFrom(){

StringLast="00:00:00";

GregorianCalendarcal=newGregorianCalendar();

cal.add(GregorianCalendar.MONTH,-1);

intdayofmonth=cal.get(GregorianCalendar.DAY_OF_MONTH);

cal.add(GregorianCalendar.DAY_OF_YEAR,1-dayofmonth);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得下个月的开始日期



@return开始日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetNextMonthFrom(){

StringLast="00:00:00";

GregorianCalendarcal=newGregorianCalendar();

cal.add(GregorianCalendar.MONTH,+1);

intdayofmonth=cal.get(GregorianCalendar.DAY_OF_MONTH);

cal.add(GregorianCalendar.DAY_OF_YEAR,1-dayofmonth);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得上个月的结束日期



@return结束日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetPreMonthTo(){

StringLast="23:59:59";

GregorianCalendarcal=newGregorianCalendar();

intdayofmonth=cal.get(GregorianCalendar.DAY_OF_MONTH);

cal.add(GregorianCalendar.DAY_OF_YEAR,1-dayofmonth-1);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得下个月的结束日期



@return结束日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetNextMonthTo(){

StringLast="23:59:59";

GregorianCalendarcal=newGregorianCalendar();

cal.add(GregorianCalendar.MONTH,+2);

intdayofmonth=cal.get(GregorianCalendar.DAY_OF_MONTH);

cal.add(GregorianCalendar.DAY_OF_YEAR,1-dayofmonth-1);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得本月的开始日期



@return开始日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetMonthFrom(){

StringLast="00:00:00";

GregorianCalendarcal=newGregorianCalendar();

intdayofmonth=cal.get(GregorianCalendar.DAY_OF_MONTH);

cal.add(GregorianCalendar.DAY_OF_YEAR,1-dayofmonth);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得本月的结束日期



@return结束日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetMonthTo(){

StringLast="23:59:59";

GregorianCalendarcal=newGregorianCalendar();

cal.add(GregorianCalendar.MONTH,1);

intdayofmonth=cal.get(GregorianCalendar.DAY_OF_MONTH);

cal.add(GregorianCalendar.DAY_OF_YEAR,1-dayofmonth-1);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得上周的开始日期



@return开始日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetPreWeekFrom(){

//0=Sunday,1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=

//Friday,6=Saturday

StringLast="00:00:00";

GregorianCalendarcal=newGregorianCalendar();

intdayofweek=cal.get(GregorianCalendar.DAY_OF_WEEK);

if(dayofweek==GregorianCalendar.SUNDAY){

dayofweek=GregorianCalendar.SUNDAY+7;

}

cal.add(GregorianCalendar.DAY_OF_YEAR,GregorianCalendar.MONDAY

-dayofweek-7);



returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得上周的结束日期



@return结束日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetPreWeekTo(){

//0=Sunday,1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=

//Friday,6=Saturday

StringLast="23:59:59";

GregorianCalendarcal=newGregorianCalendar();

intdayofweek=cal.get(GregorianCalendar.DAY_OF_WEEK);

if(dayofweek==GregorianCalendar.SUNDAY){

dayofweek=GregorianCalendar.SUNDAY+7;

}

cal.add(GregorianCalendar.DAY_OF_YEAR,GregorianCalendar.MONDAY

-dayofweek+6-7);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得本周的开始日期



@return开始日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetWeekTo(){

//0=Sunday,1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=

//Friday,6=Saturday

StringLast="23:59:59";

GregorianCalendarcal=newGregorianCalendar();

intdayofweek=cal.get(GregorianCalendar.DAY_OF_WEEK);

if(dayofweek==GregorianCalendar.SUNDAY){

dayofweek=GregorianCalendar.SUNDAY+7;

}

cal.add(GregorianCalendar.DAY_OF_YEAR,GregorianCalendar.MONDAY

-dayofweek+6);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得本周的结束日期



@return结束日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetWeekFrom(){

//0=Sunday,1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=

//Friday,6=Saturday

StringLast="00:00:00";

GregorianCalendarcal=newGregorianCalendar();

intdayofweek=cal.get(GregorianCalendar.DAY_OF_WEEK);

if(dayofweek==GregorianCalendar.SUNDAY){

dayofweek=GregorianCalendar.SUNDAY+7;

}

cal.add(GregorianCalendar.DAY_OF_YEAR,GregorianCalendar.MONDAY

-dayofweek);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得下周的开始日期



@return开始日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetNextWeekFrom(){

//0=Sunday,1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=

//Friday,6=Saturday

StringLast="00:00:00";

GregorianCalendarcal=newGregorianCalendar();

intdayofweek=cal.get(GregorianCalendar.DAY_OF_WEEK);

if(dayofweek==GregorianCalendar.SUNDAY){

dayofweek=GregorianCalendar.SUNDAY+7;

}

cal.add(GregorianCalendar.DAY_OF_YEAR,GregorianCalendar.MONDAY

-dayofweek+7);



returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得上周的结束日期



@return结束日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetNextWeekTo(){

//0=Sunday,1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=

//Friday,6=Saturday

StringLast="23:59:59";

GregorianCalendarcal=newGregorianCalendar();

intdayofweek=cal.get(GregorianCalendar.DAY_OF_WEEK);

if(dayofweek==GregorianCalendar.SUNDAY){

dayofweek=GregorianCalendar.SUNDAY+7;

}

cal.add(GregorianCalendar.DAY_OF_YEAR,GregorianCalendar.MONDAY

-dayofweek+6+7);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得昨天的开始日期



@return开始日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetYestodayFrom(){

StringLast="00:00:00";

GregorianCalendarcal=newGregorianCalendar();

cal.add(GregorianCalendar.DAY_OF_YEAR,-1);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得昨天的结束日期



@return结束日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetYestodayTo(){

StringLast="23:59:59";

GregorianCalendarcal=newGregorianCalendar();

cal.add(GregorianCalendar.DAY_OF_YEAR,-1);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得今天的开始日期



@return开始日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetTodayFrom(){

StringLast="00:00:00";

Stringnow=newSimpleDateFormat("yyyy-MM-dd")

.format(newjava.util.Date());

returnnow+""+Last;

}



/

取得今天的结束日期



@return结束日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetTodayTo(){

StringLast="23:59:59";

Stringnow=newSimpleDateFormat("yyyy-MM-dd")

.format(newjava.util.Date());

returnnow+""+Last;

}



/

取得明天的开始日期



@return开始日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetNextdayFrom(){

StringLast="00:00:00";

GregorianCalendarcal=newGregorianCalendar();

cal.add(GregorianCalendar.DAY_OF_YEAR,+1);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得昨天的结束日期



@return结束日期格式:yyyy-MM-dd00:00:00

/

publicstaticStringgetNextdayTo(){

StringLast="23:59:59";

GregorianCalendarcal=newGregorianCalendar();

cal.add(GregorianCalendar.DAY_OF_YEAR,+1);

returnnewSimpleDateFormat("yyyy-MM-dd").format(cal.getTime())+""

+Last;

}



/

取得2个时间点之间的时间间隔,单位为分



@paramstratTime

开始时间格式必须为"HH:MM"

@paramendTime

结束时间格式必须为"HH:MM"

@return间隔的分钟数

/

publicstaticStringgetTwoHour(StringstratTime,StringendTime){

String[]kk=null;

String[]jj=null;

kk=stratTime.split(":");

jj=endTime.split(":");

if(Integer.parseInt(kk[0])
return"0";

else{

doubley=Double.parseDouble(kk[0])+Double.parseDouble(kk[1])

/60;

doubleu=Double.parseDouble(jj[0])+Double.parseDouble(jj[1])

/60;

if((y-u)>0)

returny-u+"";

else

return"0";

}

}



/

取得2个日期点之间的日期间隔,单位为天



@paramstratDate

开始日期

@paramendDate

结束日期

@return间隔的天数

/

publicstaticStringgetTwoDay(StringstratDate,StringendDate){

SimpleDateFormatmyFormatter=newSimpleDateFormat("yyyy-MM-dd");

longday=0;

try{

java.util.Datedate=myFormatter.parse(stratDate);

java.util.Datemydate=myFormatter.parse(endDate);

day=(date.getTime()-mydate.getTime())/(2460601000);

}catch(Exceptione){

return"";

}

returnday+"";

}



/

判断是否为闰年



@paramdateValue

需要判断的日期

@returntrue:是闰年false:不是闰年

@throwsParseException

/

publicstaticbooleanisLeapYear(StringdateValue)throwsParseException{



/

详细设计:1.被400整除是闰年,否则:2.不能被4整除则不是闰年3.能被4整除同时不能被100整除则是闰年

4.能被4整除同时能被100整除则不是闰年

/

Dated=strToDate(dateValue);

GregorianCalendargc=(GregorianCalendar)Calendar.getInstance();

gc.setTime(d);

intyear=gc.get(Calendar.YEAR);

if((year%400)==0)

returntrue;

elseif((year%4)==0){

if((year%100)==0)

returnfalse;

else

returntrue;

}else

returnfalse;

}



/

将字符型的日期转化为日期型的日期



@paramdateValue

将要转化的字符串

@return日期型的日期

@throwsParseException

/

publicstaticDatestrToDate(StringdateValue)throwsParseException{

DateFormatformat=newSimpleDateFormat("yyyy-MM-dd");

returnformat.parse(dateValue);

}



/

判断2个日期是否在同一个星期



@paramdateOne

日期1

@paramdateTwo

日期2

@returntrue:在同一个星期false:不在同一个星期

/

publicstaticbooleanisSameWeekDates(DatedateOne,DatedateTwo){

Calendarcal1=Calendar.getInstance();

Calendarcal2=Calendar.getInstance();

cal1.setTime(dateOne);

cal2.setTime(dateTwo);

intsubYear=cal1.get(Calendar.YEAR)-cal2.get(Calendar.YEAR);

if(0==subYear){

if(cal1.get(Calendar.WEEK_OF_YEAR)==cal2

.get(Calendar.WEEK_OF_YEAR))

returntrue;

}elseif(1==subYear&&11==cal2.get(Calendar.MONTH)){

//如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周

if(cal1.get(Calendar.WEEK_OF_YEAR)==cal2

.get(Calendar.WEEK_OF_YEAR))

returntrue;

}elseif(-1==subYear&&11==cal1.get(Calendar.MONTH)){

if(cal1.get(Calendar.WEEK_OF_YEAR)==cal2

.get(Calendar.WEEK_OF_YEAR))

returntrue;

}

returnfalse;

}



/

取得日期为所在年度的第几周



@paramdateValue

需要判断的日期

@return年度+周数

@throwsParseException

/

publicstaticStringgetSeqWeek(StringdateValue)throwsParseException{

Calendarc=Calendar.getInstance();

c.setTime(strToDate(dateValue));

Stringweek=Integer.toString(c.get(Calendar.WEEK_OF_YEAR));

if(week.length()==1)

week="0"+week;

Stringyear=Integer.toString(c.get(Calendar.YEAR));

returnyear+week;

}



/

获得一个日期所在的周的星期几的日期,如要找出2011年2月3日所在周的星期一是几号



@paramdateValue

日期

@paramnumWeek

所在的周的星期几

@return日期格式:"yyyy-MM-dd"

@throwsParseException

/

publicstaticStringgetWeek(StringdateValue,StringnumWeek)

throwsParseException{

//再转换为时间

Datedd=strToDate(dateValue);

Calendarc=Calendar.getInstance();

c.setTime(dd);

if(numWeek.equals("1"))//返回星期一所在的日期

c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);

elseif(numWeek.equals("2"))//返回星期二所在的日期

c.set(Calendar.DAY_OF_WEEK,Calendar.TUESDAY);

elseif(numWeek.equals("3"))//返回星期三所在的日期

c.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);

elseif(numWeek.equals("4"))//返回星期四所在的日期

c.set(Calendar.DAY_OF_WEEK,Calendar.THURSDAY);

elseif(numWeek.equals("5"))//返回星期五所在的日期

c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);

elseif(numWeek.equals("6"))//返回星期六所在的日期

c.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);

elseif(numWeek.equals("0"))//返回星期日所在的日期

c.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);

returnnewSimpleDateFormat("yyyy-MM-dd").format(c.getTime());

}



/

根据一个日期,返回数字的星期几



@paramdateValue

日期

@return数字的星期几1=星期日7=星期六,其他类推

@throwsParseException

/

publicstaticStringgetWeek(StringdateValue)throwsParseException{

//再转换为时间

Datedate=strToDate(dateValue);

Calendarc=Calendar.getInstance();

c.setTime(date);

//inthour=c.get(Calendar.DAY_OF_WEEK);

//hour中存的就是星期几了,其范围1~7

//1=星期日7=星期六,其他类推

returnnewSimpleDateFormat("EEEE").format(c.getTime());

}



/

根据一个日期,返回是星期几



@paramdateValue

日期

@return中文字符型的星期几

@throwsParseException

/

publicstaticStringgetWeekStr(Stringsdate)throwsParseException{

Stringstr="";

str=getWeek(sdate);

if("1".equals(str)){

str="星期日";

}elseif("2".equals(str)){

str="星期一";

}elseif("3".equals(str)){

str="星期二";

}elseif("4".equals(str)){

str="星期三";

}elseif("5".equals(str)){

str="星期四";

}elseif("6".equals(str)){

str="星期五";

}elseif("7".equals(str)){

str="星期六";

}

returnstr;

}



publicstaticStringDateTostr(DatedateValue,intKind)throwsParseException{



SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd-HH-mm-ss");

StringstrDate=formatter.format(dateValue);

StringTokenizertoken=newStringTokenizer(strDate,"-");

Stringyear=token.nextToken();

Stringmonth=token.nextToken();

Stringday=token.nextToken();

Stringhh=token.nextToken();

Stringmm=token.nextToken();

Stringss=token.nextToken();

StringstrServerDateTime="";

switch(Kind){

case1:

strServerDateTime=year+month+day;

break;

case2:

strServerDateTime=year+"/"+month+"/"+day;

break;

case3:

strServerDateTime=hh+mm+ss;

break;

case4:

strServerDateTime=hh+":"+mm+":"+ss;

break;

case5:

strServerDateTime=year+month+day+""+hh+mm+ss;

break;

case6:

strServerDateTime=year+"/"+month+"/"+day+""+hh+":"

+mm+":"+ss;

break;

case7:

strServerDateTime=year+"/"+month+"/"+day+"|"+hh+":"

+mm+":"+ss;

break;

case8:

strServerDateTime=year+month+day+hh+mm+ss;

break;

case9:

strServerDateTime=year+"-"+month+"-"+day;

break;

case10:

strServerDateTime=year+"-"+month+"-"+day+""+hh+":"

+mm+":"+ss;

break;

case11:

strServerDateTime=year+"年"+month+"月"+day+"日";

break;

case12:

strServerDateTime=year;

break;

case13:

strServerDateTime=month+day;

break;

case14:

strServerDateTime=hh;

break;

case15:

strServerDateTime=year+month;

break;

default:

break;

}

returnstrServerDateTime;

}



}

献花(0)
+1
(本文系中工402首藏)