Java实现时间日期格式转换示例
Java时间格式转换大全
importjava.text.*; importjava.util.Calendar; publicclassVeDate{ /** *获取现在时间 * *@return返回时间类型yyyy-MM-ddHH:mm:ss */ publicstaticDategetNowDate(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(currentTime); ParsePositionpos=newParsePosition(8); DatecurrentTime_2=formatter.parse(dateString,pos); returncurrentTime_2; } /** *获取现在时间 * *@return返回短时间格式yyyy-MM-dd */ DateFormatformat1=newSimpleDateFormat("yyyy-MM-dd"); DateFormatformat2=newSimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒"); Datedate=null; Stringstr=null; //String转Date str="2007-1-18"; try{ date=format1.parse(str); data=format2.parse(str); }catch(ParseExceptione){ e.printStackTrace(); } /** *获取现在时间 * *@return返回字符串格式yyyy-MM-ddHH:mm:ss */ publicstaticStringgetStringDate(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(currentTime); returndateString; } /** *获取现在时间 * *@return返回短时间字符串格式yyyy-MM-dd */ publicstaticStringgetStringDateShort(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringdateString=formatter.format(currentTime); returndateString; } /** *获取时间小时:分;秒HH:mm:ss * *@return */ publicstaticStringgetTimeShort(){ SimpleDateFormatformatter=newSimpleDateFormat("HH:mm:ss"); DatecurrentTime=newDate(); StringdateString=formatter.format(currentTime); returndateString; } /** *将长时间格式字符串转换为时间yyyy-MM-ddHH:mm:ss * *@paramstrDate *@return */ publicstaticDatestrToDateLong(StringstrDate){ SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); ParsePositionpos=newParsePosition(0); Datestrtodate=formatter.parse(strDate,pos); returnstrtodate; } /** *将长时间格式时间转换为字符串yyyy-MM-ddHH:mm:ss * *@paramdateDate *@return */ publicstaticStringdateToStrLong(java.util.DatedateDate){ SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(dateDate); returndateString; } /** *将短时间格式时间转换为字符串yyyy-MM-dd * *@paramdateDate *@paramk *@return */ publicstaticStringdateToStr(java.util.DatedateDate){ SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringdateString=formatter.format(dateDate); returndateString; } /** *将短时间格式字符串转换为时间yyyy-MM-dd * *@paramstrDate *@return */ publicstaticDatestrToDate(StringstrDate){ SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); ParsePositionpos=newParsePosition(0); Datestrtodate=formatter.parse(strDate,pos); returnstrtodate; } /** *得到现在时间 * *@return */ publicstaticDategetNow(){ DatecurrentTime=newDate(); returncurrentTime; } /** *提取一个月中的最后一天 * *@paramday *@return */ publicstaticDategetLastDate(longday){ Datedate=newDate(); longdate_3_hm=date.getTime()-3600000*34*day; Datedate_3_hm_date=newDate(date_3_hm); returndate_3_hm_date; } /** *得到现在时间 * *@return字符串yyyyMMddHHmmss */ publicstaticStringgetStringToday(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyyMMddHHmmss"); StringdateString=formatter.format(currentTime); returndateString; } /** *得到现在小时 */ publicstaticStringgetHour(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(currentTime); Stringhour; hour=dateString.substring(11,13); returnhour; } /** *得到现在分钟 * *@return */ publicstaticStringgetTime(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(currentTime); Stringmin; min=dateString.substring(14,16); returnmin; } /** *根据用户传入的时间表示格式,返回当前时间的格式如果是yyyyMMdd,注意字母y不能大写。 * *@paramsformat *yyyyMMddhhmmss *@return */ publicstaticStringgetUserDate(Stringsformat){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat(sformat); StringdateString=formatter.format(currentTime); returndateString; }
--------------------------------------------------------------------------------------------------------------------------------
做成方法
importjava.util.*; importjava.text.*; importjava.util.Calendar; publicclassVeDate{ /** *获取现在时间 * *@return返回时间类型yyyy-MM-ddHH:mm:ss */ publicstaticDategetNowDate(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(currentTime); ParsePositionpos=newParsePosition(8); DatecurrentTime_2=formatter.parse(dateString,pos); returncurrentTime_2; } /** *获取现在时间 * *@return返回短时间格式yyyy-MM-dd */ publicstaticDategetNowDateShort(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringdateString=formatter.format(currentTime); ParsePositionpos=newParsePosition(8); DatecurrentTime_2=formatter.parse(dateString,pos); returncurrentTime_2; } /** *获取现在时间 * *@return返回字符串格式yyyy-MM-ddHH:mm:ss */ publicstaticStringgetStringDate(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(currentTime); returndateString; } /** *获取现在时间 * *@return返回短时间字符串格式yyyy-MM-dd */ publicstaticStringgetStringDateShort(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringdateString=formatter.format(currentTime); returndateString; } /** *获取时间小时:分;秒HH:mm:ss * *@return */ publicstaticStringgetTimeShort(){ SimpleDateFormatformatter=newSimpleDateFormat("HH:mm:ss"); DatecurrentTime=newDate(); StringdateString=formatter.format(currentTime); returndateString; } /** *将长时间格式字符串转换为时间yyyy-MM-ddHH:mm:ss * *@paramstrDate *@return */ publicstaticDatestrToDateLong(StringstrDate){ SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); ParsePositionpos=newParsePosition(0); Datestrtodate=formatter.parse(strDate,pos); returnstrtodate; } /** *将长时间格式时间转换为字符串yyyy-MM-ddHH:mm:ss * *@paramdateDate *@return */ publicstaticStringdateToStrLong(java.util.DatedateDate){ SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(dateDate); returndateString; } /** *将短时间格式时间转换为字符串yyyy-MM-dd * *@paramdateDate *@paramk *@return */ publicstaticStringdateToStr(java.util.DatedateDate){ SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringdateString=formatter.format(dateDate); returndateString; } /** *将短时间格式字符串转换为时间yyyy-MM-dd * *@paramstrDate *@return */ publicstaticDatestrToDate(StringstrDate){ SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); ParsePositionpos=newParsePosition(0); Datestrtodate=formatter.parse(strDate,pos); returnstrtodate; } /** *得到现在时间 * *@return */ publicstaticDategetNow(){ DatecurrentTime=newDate(); returncurrentTime; } /** *提取一个月中的最后一天 * *@paramday *@return */ publicstaticDategetLastDate(longday){ Datedate=newDate(); longdate_3_hm=date.getTime()-3600000*34*day; Datedate_3_hm_date=newDate(date_3_hm); returndate_3_hm_date; } /** *得到现在时间 * *@return字符串yyyyMMddHHmmss */ publicstaticStringgetStringToday(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyyMMddHHmmss"); StringdateString=formatter.format(currentTime); returndateString; } /** *得到现在小时 */ publicstaticStringgetHour(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(currentTime); Stringhour; hour=dateString.substring(11,13); returnhour; } /** *得到现在分钟 * *@return */ publicstaticStringgetTime(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(currentTime); Stringmin; min=dateString.substring(14,16); returnmin; } /** *根据用户传入的时间表示格式,返回当前时间的格式如果是yyyyMMdd,注意字母y不能大写。 * *@paramsformat *yyyyMMddhhmmss *@return */ publicstaticStringgetUserDate(Stringsformat){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat(sformat); StringdateString=formatter.format(currentTime); returndateString; } /** *二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式,返回字符型的分钟 */ publicstaticStringgetTwoHour(Stringst1,Stringst2){ String[]kk=null; String[]jj=null; kk=st1.split(":"); jj=st2.split(":"); if(Integer.parseInt(kk[0])<Integer.parseInt(jj[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"; } } /** *得到二个日期间的间隔天数 */ publicstaticStringgetTwoDay(Stringsj1,Stringsj2){ SimpleDateFormatmyFormatter=newSimpleDateFormat("yyyy-MM-dd"); longday=0; try{ java.util.Datedate=myFormatter.parse(sj1); java.util.Datemydate=myFormatter.parse(sj2); day=(date.getTime()-mydate.getTime())/(24*60*60*1000); }catch(Exceptione){ return""; } returnday+""; } /** *时间前推或后推分钟,其中JJ表示分钟. */ publicstaticStringgetPreTime(Stringsj1,Stringjj){ SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Stringmydate1=""; try{ Datedate1=format.parse(sj1); longTime=(date1.getTime()/1000)+Integer.parseInt(jj)*60; date1.setTime(Time*1000); mydate1=format.format(date1); }catch(Exceptione){ } returnmydate1; } /** *得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数 */ publicstaticStringgetNextDay(Stringnowdate,Stringdelay){ try{ SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd"); Stringmdate=""; Dated=strToDate(nowdate); longmyTime=(d.getTime()/1000)+Integer.parseInt(delay)*24*60*60; d.setTime(myTime*1000); mdate=format.format(d); returnmdate; }catch(Exceptione){ return""; } } /** *判断是否润年 * *@paramddate *@return */ publicstaticbooleanisLeapYear(Stringddate){ /** *详细设计:1.被400整除是闰年,否则:2.不能被4整除则不是闰年3.能被4整除同时不能被100整除则是闰年 *3.能被4整除同时能被100整除则不是闰年 */ Dated=strToDate(ddate); 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; } /** *返回美国时间格式26Apr2006 * *@paramstr *@return */ publicstaticStringgetEDate(Stringstr){ SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); ParsePositionpos=newParsePosition(0); Datestrtodate=formatter.parse(str,pos); Stringj=strtodate.toString(); String[]k=j.split(""); returnk[2]+k[1].toUpperCase()+k[5].substring(2,4); } /** *获取一个月的最后一天 * *@paramdat *@return */ publicstaticStringgetEndDateOfMonth(Stringdat){//yyyy-MM-dd Stringstr=dat.substring(0,8); Stringmonth=dat.substring(5,7); intmon=Integer.parseInt(month); if(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12){ str+="31"; }elseif(mon==4||mon==6||mon==9||mon==11){ str+="30"; }else{ if(isLeapYear(dat)){ str+="29"; }else{ str+="28"; } } returnstr; } /** *判断二个时间是否在同一个周 * *@paramdate1 *@paramdate2 *@return */ publicstaticbooleanisSameWeekDates(Datedate1,Datedate2){ Calendarcal1=Calendar.getInstance(); Calendarcal2=Calendar.getInstance(); cal1.setTime(date1); cal2.setTime(date2); 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; } /** *产生周序列,即得到当前时间所在的年度是第几周 * *@return */ publicstaticStringgetSeqWeek(){ Calendarc=Calendar.getInstance(Locale.CHINA); 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; } /** *获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号 * *@paramsdate *@paramnum *@return */ publicstaticStringgetWeek(Stringsdate,Stringnum){ //再转换为时间 Datedd=VeDate.strToDate(sdate); Calendarc=Calendar.getInstance(); c.setTime(dd); if(num.equals("1"))//返回星期一所在的日期 c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY); elseif(num.equals("2"))//返回星期二所在的日期 c.set(Calendar.DAY_OF_WEEK,Calendar.TUESDAY); elseif(num.equals("3"))//返回星期三所在的日期 c.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY); elseif(num.equals("4"))//返回星期四所在的日期 c.set(Calendar.DAY_OF_WEEK,Calendar.THURSDAY); elseif(num.equals("5"))//返回星期五所在的日期 c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY); elseif(num.equals("6"))//返回星期六所在的日期 c.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY); elseif(num.equals("0"))//返回星期日所在的日期 c.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY); returnnewSimpleDateFormat("yyyy-MM-dd").format(c.getTime()); } /** *根据一个日期,返回是星期几的字符串 * *@paramsdate *@return */ publicstaticStringgetWeek(Stringsdate){ //再转换为时间 Datedate=VeDate.strToDate(sdate); Calendarc=Calendar.getInstance(); c.setTime(date); //inthour=c.get(Calendar.DAY_OF_WEEK); //hour中存的就是星期几了,其范围1~7 //1=星期日7=星期六,其他类推 returnnewSimpleDateFormat("EEEE").format(c.getTime()); } publicstaticStringgetWeekStr(Stringsdate){ Stringstr=""; str=VeDate.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; } /** *两个时间之间的天数 * *@paramdate1 *@paramdate2 *@return */ publicstaticlonggetDays(Stringdate1,Stringdate2){ if(date1==null||date1.equals("")) return0; if(date2==null||date2.equals("")) return0; //转换为标准时间 SimpleDateFormatmyFormatter=newSimpleDateFormat("yyyy-MM-dd"); java.util.Datedate=null; java.util.Datemydate=null; try{ date=myFormatter.parse(date1); mydate=myFormatter.parse(date2); }catch(Exceptione){ } longday=(date.getTime()-mydate.getTime())/(24*60*60*1000); returnday; } /** *形成如下的日历,根据传入的一个时间返回一个结构星期日星期一星期二星期三星期四星期五星期六下面是当月的各个时间 *此函数返回该日历第一行星期日所在的日期 * *@paramsdate *@return */ publicstaticStringgetNowMonth(Stringsdate){ //取该时间所在月的一号 sdate=sdate.substring(0,8)+"01"; //得到这个月的1号是星期几 Datedate=VeDate.strToDate(sdate); Calendarc=Calendar.getInstance(); c.setTime(date); intu=c.get(Calendar.DAY_OF_WEEK); Stringnewday=VeDate.getNextDay(sdate,(1-u)+""); returnnewday; } /** *取得数据库主键生成格式为yyyymmddhhmmss+k位随机数 * *@paramk *表示是取几位随机数,可以自己定 */ publicstaticStringgetNo(intk){ returngetUserDate("yyyyMMddhhmmss")+getRandom(k); } /** *返回一个随机数 * *@parami *@return */ publicstaticStringgetRandom(inti){ Randomjjj=newRandom(); //intsuiJiShu=jjj.nextInt(9); if(i==0) return""; Stringjj=""; for(intk=0;k<i;k++){ jj=jj+jjj.nextInt(9); } returnjj; } /** * *@paramargs */ publicstaticbooleanRightDate(Stringdate){ SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss"); ; if(date==null) returnfalse; if(date.length()>10){ sdf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss"); }else{ sdf=newSimpleDateFormat("yyyy-MM-dd"); } try{ sdf.parse(date); }catch(ParseExceptionpe){ returnfalse; } returntrue; } /*************************************************************************** *//nd=1表示返回的值中包含年度//yf=1表示返回的值中包含月份//rq=1表示返回的值中包含日期//format表示返回的格式1 *以年月日中文返回2以横线-返回//3以斜线/返回4以缩写不带其它符号形式返回//5以点号.返回 **************************************************************************/ publicstaticStringgetStringDateMonth(Stringsdate,Stringnd,Stringyf,Stringrq,Stringformat){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringdateString=formatter.format(currentTime); Strings_nd=dateString.substring(0,4);//年份 Strings_yf=dateString.substring(5,7);//月份 Strings_rq=dateString.substring(8,10);//日期 Stringsreturn=""; roc.util.MyCharmc=newroc.util.MyChar(); if(sdate==null||sdate.equals("")||!mc.Isdate(sdate)){//处理空值情况 if(nd.equals("1")){ sreturn=s_nd; //处理间隔符 if(format.equals("1")) sreturn=sreturn+"年"; elseif(format.equals("2")) sreturn=sreturn+"-"; elseif(format.equals("3")) sreturn=sreturn+"/"; elseif(format.equals("5")) sreturn=sreturn+"."; } //处理月份 if(yf.equals("1")){ sreturn=sreturn+s_yf; if(format.equals("1")) sreturn=sreturn+"月"; elseif(format.equals("2")) sreturn=sreturn+"-"; elseif(format.equals("3")) sreturn=sreturn+"/"; elseif(format.equals("5")) sreturn=sreturn+"."; } //处理日期 if(rq.equals("1")){ sreturn=sreturn+s_rq; if(format.equals("1")) sreturn=sreturn+"日"; } }else{ //不是空值,也是一个合法的日期值,则先将其转换为标准的时间格式 sdate=roc.util.RocDate.getOKDate(sdate); s_nd=sdate.substring(0,4);//年份 s_yf=sdate.substring(5,7);//月份 s_rq=sdate.substring(8,10);//日期 if(nd.equals("1")){ sreturn=s_nd; //处理间隔符 if(format.equals("1")) sreturn=sreturn+"年"; elseif(format.equals("2")) sreturn=sreturn+"-"; elseif(format.equals("3")) sreturn=sreturn+"/"; elseif(format.equals("5")) sreturn=sreturn+"."; } //处理月份 if(yf.equals("1")){ sreturn=sreturn+s_yf; if(format.equals("1")) sreturn=sreturn+"月"; elseif(format.equals("2")) sreturn=sreturn+"-"; elseif(format.equals("3")) sreturn=sreturn+"/"; elseif(format.equals("5")) sreturn=sreturn+"."; } //处理日期 if(rq.equals("1")){ sreturn=sreturn+s_rq; if(format.equals("1")) sreturn=sreturn+"日"; } } returnsreturn; } publicstaticStringgetNextMonthDay(Stringsdate,intm){ sdate=getOKDate(sdate); intyear=Integer.parseInt(sdate.substring(0,4)); intmonth=Integer.parseInt(sdate.substring(5,7)); month=month+m; if(month<0){ month=month+12; year=year-1; }elseif(month>12){ month=month-12; year=year+1; } Stringsmonth=""; if(month<10) smonth="0"+month; else smonth=""+month; returnyear+"-"+smonth+"-10"; } publicstaticStringgetOKDate(Stringsdate){ if(sdate==null||sdate.equals("")) returngetStringDateShort(); if(!VeStr.Isdate(sdate)){ sdate=getStringDateShort(); } //将“/”转换为“-” sdate=VeStr.Replace(sdate,"/","-"); //如果只有8位长度,则要进行转换 if(sdate.length()==8) sdate=sdate.substring(0,4)+"-"+sdate.substring(4,6)+"-"+sdate.substring(6,8); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); ParsePositionpos=newParsePosition(0); Datestrtodate=formatter.parse(sdate,pos); StringdateString=formatter.format(strtodate); returndateString; } publicstaticvoidmain(String[]args)throwsException{ try{ //System.out.print(Integer.valueOf(getTwoDay("2006-11-0312:22:10","2006-11-0211:22:09"))); }catch(Exceptione){ thrownewException(); } //System.out.println("sss"); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。