Java中Date转换大全返回yyyy-MM-dd的Date类型 Java中Date转换大全,返回yyyy-MM-dd的Date类型 特殊:字符串"yyyy-MM-dd"格式的时间想要转换成Date类型同样格式的时候,总是转换不好,会变成英文格式(SatMar2300:00:00GMT+08:001957)的时间。就试试下面的方法。//获取的值为"19570323"StringdateString=emp.getHealthCarePrincipalPerson().getBirthTime().getValue().toString();//1、定义转换格式SimpleDateFor...
Java中Date转换大全,返回yyyy-MM-dd的Date类型 特殊:字符串"yyyy-MM-dd"格式的时间想要转换成Date类型同样格式的时候,总是转换不好,会变成英文格式(SatMar2300:00:00GMT+08:001957)的时间。就试试下面的方法。//获取的值为"19570323"StringdateString=emp.getHealthCarePrincipalPerson().getBirthTime().getValue().toString();//1、定义转换格式SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");SimpleDateFormatformatter2=newSimpleDateFormat("yyyyMMdd");//2、调用formatter2.parse(),将"19570323"转化为date类型输出为:SatMar2300:00:00GMT+08:001957Datedate=formatter2.parse(dateString);//3、将date类型(SatMar2300:00:00GMT+08:001957)转化为String类型//注意现在用的是formatter来做转换,输出为String类型的:"1957-03-23"StringdString=formatter.format(date);//4、将String转化为date,需要注意java.sql.Date.valueOf()函数只能接受参数类型为yyyy-MM-dd类型的Datedata=java.sql.Date.valueOf(dString);//5、将获取的date类型的出生日期赋值给javabeanpersonAudit.setBirthDate((emp.getHealthCarePrincipalPerson()!=null&&emp.getHealthCarePrincipalPerson().getBirthTime()!=null)?data:null);常规用法:/** *获取现在时间,这个好用 * *@return返回长时间格式yyyy-MM-ddHH:mm:ss */ publicstaticDategetSqlDate(){ DatesqlDate=newjava.sql.Date(newDate().getTime()); returnsqlDate; } /** *获取现在时间 * *@return返回长时间格式yyyy-MM-ddHH:mm:ss */ publicstaticStringgetNowDate(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringdateString=formatter.format(currentTime); returndateString; } /** *获取现在时间 * *@return返回短时间格式yyyy-MM-dd */ publicstaticStringgetNowDateShort(){ DatecurrentTime=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringdateString=formatter.format(currentTime); returndateString; } /** *获取现在时间 * *@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])
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=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=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=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=strToDate(sdate); Calendarc=Calendar.getInstance(); c.setTime(date); intu=c.get(Calendar.DAY_OF_WEEK); Stringnewday=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;k10){ 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=""; if(sdate==null||sdate.equals("")||!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(!Isdate(sdate)){ sdate=getStringDateShort(); } //将“/”转换为“-” sdate=sdate.replace("/","-"); //如果只有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"); } -全文完-
本文档为【Java中Date转换大全返回yyyy-MM-dd的Date类型】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。