Java Date 日期 时间 相关方法
2014-08-23 09:06
337 查看
DateTools.java
importjava.text.SimpleDateFormat; importjava.util.Date; /** *日期操作类 */ publicclassDateTools{ /**yyyyMMddHHmmss * *@return */ publicstaticStringgetAllDate(){ SimpleDateFormatlFormat; //格式可以自己根据需要修改 lFormat=newSimpleDateFormat("yyyyMMddHHmmss"); StringgRtnStr=lFormat.format(newDate()); returngRtnStr; } /** *获得yymmdd类型的日期 *@paramdate *@return */ publicstaticStringgetDateString(Datedate){ Stringyear=(date.getYear()+1900)+""; Stringmm=(date.getMonth()+1)+""; if(Integer.valueOf(mm).intValue()<10){ mm="0"+mm; } Stringday=date.getDate()+""; if(Integer.valueOf(day).intValue()<10)day="0"+day; returnyear+mm+day; } /** *获得yymmdd类型的日期(日期的前1天) *@paramdate *@return */ publicstaticStringgetZDateString(Datedate){ date.setDate(date.getDate()-1); Stringyear=(date.getYear()+1900)+""; Stringmm=(date.getMonth()+1)+""; if(Integer.valueOf(mm).intValue()<10){ mm="0"+mm; } Stringday=date.getDate()+""; if(day.length()==1)day="0"+day; returnyear+mm+day; } /** *获得yy-mm-dd类型的日期 *@paramdate *@return */ publicstaticStringDateString(Datedate){ Stringyear=(date.getYear()+1900)+""; Stringmm=(date.getMonth()+1)+""; if(Integer.valueOf(mm).intValue()<10){ mm="0"+mm; } Stringday=date.getDate()+""; if(day.length()==1){ day="0"+day; } returnyear+"-"+mm+"-"+day; } //得到当前时间 publicstaticStringgetCurrentDateTime(){ java.text.SimpleDateFormatd=newjava.text.SimpleDateFormat(); d.applyPattern("HH:mm:ss"); java.util.Datenowdate=newjava.util.Date(); Stringstr_date=d.format(nowdate); returnstr_date; } /** *时间格式化 *@return */ publicstaticStringgetTimeString(Stringtime){ String[]ti=time.split(":"); if(ti[1].length()==1){ time=ti[0]+"0"+ti[1]; }else{ time=ti[0]+ti[1]; } returntime; } publicstaticStringTimeString(){ Datedate=newDate(); returngetTimeString(date.getHours()+":"+date.getMinutes()); } publicstaticvoidmain(Stringargs[]){ System.out.println(DateTools.getZDateString(newDate())); } }DateTime.java
importjava.util.*; importjava.text.*; publicclassDateTime{ publicDateTime(){ } publicstaticfinallongSECOND=1000; publicstaticfinallongMINUTE=60*SECOND; publicstaticfinallongHOUR=60*MINUTE; publicstaticfinallongDAY=24*HOUR; publicstaticfinallongWEEK=7*DAY; publicstaticfinalStringSHORTFORMAT="yyyy-MM-dd"; publicstaticfinalStringSHORTFORMATNOSPIT="yyyyMMdd"; publicstaticfinalStringYEARMONTHFORMAT="yyyy-MM"; publicstaticfinalStringLONGFORMAT="yyyy-MM-ddHH:mm:ss"; /** *获得yymmdd类型的日期 *@paramdate *@return */ publicstaticStringgetDateString(Datedate){ Stringyear=(date.getYear()+1900)+""; Stringmm=(date.getMonth()+1)+""; if(Integer.valueOf(mm).intValue()<10){ mm="0"+mm; } Stringday=date.getDate()+""; returnyear+mm+day; } /** *获得yy-mm-dd类型的日期 *@paramdate *@return */ publicstaticStringDateString(Datedate){ Stringyear=(date.getYear()+1900)+""; Stringmm=(date.getMonth()+1)+""; if(Integer.valueOf(mm).intValue()<10){ mm="0"+mm; } Stringday=date.getDate()+""; if(day.length()==1){ day="0"+day; } returnyear+"-"+mm+"-"+day; } //得到某一天是星期几 publicstaticintgetDateInWeek(StringstrDate){ DateFormatdf=DateFormat.getDateInstance(); try{ df.parse(strDate); java.util.Calendarc=df.getCalendar(); intday=c.get(Calendar.DAY_OF_WEEK)-Calendar.SUNDAY; returnday; }catch(ParseExceptione){ return-1; } } //得到当前日期 publicstaticStringgetCurrentDate(){ java.text.SimpleDateFormatd=newjava.text.SimpleDateFormat(); d.applyPattern("yyyy-MM-dd"); java.util.Datenowdate=newjava.util.Date(); Stringstr_date=d.format(nowdate); returnstr_date; } //得到当前日期时间 publicstaticStringgetCurrentDateTime(){ java.text.SimpleDateFormatd=newjava.text.SimpleDateFormat(); d.applyPattern("yyyy-MM-ddHH:mm:ss"); java.util.Datenowdate=newjava.util.Date(); Stringstr_date=d.format(nowdate); returnstr_date; } //根据日期获得日期时间 publicstaticStringgetDateTime(java.util.Datedate){ java.text.SimpleDateFormatd=newjava.text.SimpleDateFormat(); d.applyPattern("yyyy-MM-ddHH:mm:ss"); Stringstr_date=d.format(date); returnstr_date; } //获得某月的最后一天 publicstaticintgetDayNum(intyear,intmonth){ if(month==2){ returnyear%400!=0&&(year%4!=0||year%100==0)?28 :29; } StringSmallMonth=",4,6,9,11,"; returnSmallMonth.indexOf(String.valueOf(String .valueOf((newStringBuffer(",")).append(String.valueOf(month)) .append(","))))<0?31:30; } //返回两个日期之间隔了多少天 publicstaticintDateDiff(Datedate1,Datedate2){ inti=(int)((date1.getTime()-date2.getTime())/3600/24/1000); returni; } //从放有日期的字符串中得到,相应的年,月,日styleis"Y"or"y"返回年styleis"M"or"m"返回月style //is"D"or"d"返回日日期字符串要求"YYYY-MM-DD" publicstaticintgetYearMonthDate(StringstrDate,Stringstyle){ intyear; intmonth; intday; intfirstDash; intsecondDash; if(strDate==null){ return0; } firstDash=strDate.indexOf('-'); secondDash=strDate.indexOf('-',firstDash+1); if((firstDash>0)&(secondDash>0) &(secondDash<strDate.length()-1)){ year=Integer.parseInt(strDate.substring(0,firstDash)); month=Integer.parseInt(strDate.substring(firstDash+1, secondDash)); day=Integer.parseInt(strDate.substring(secondDash+1)); }else{ return0; } if(style.equalsIgnoreCase("Y")){ returnyear; }elseif(style.equalsIgnoreCase("M")){ returnmonth; }elseif(style.equalsIgnoreCase("D")){ returnday; }else{ return0; } } //某一天,过几天后是几号 publicstaticjava.sql.DateDateAdd(java.sql.Datedate,intaddday){ java.sql.Datedatenew=null; intyear=DateTime.getYearMonthDate(date.toString(),"Y"); intmonth=DateTime.getYearMonthDate(date.toString(),"M"); intday=DateTime.getYearMonthDate(date.toString(),"D"); day=day+addday; StringdayStr=Integer.toString(year)+"-"+Integer.toString(month)+ "-"+Integer.toString(day); datenew=datenew.valueOf(dayStr); //datenew.setTime(datenew.getTime()+day*3600*24*1000); //有问题。改 returndatenew; } //某一天的前几天是几号 publicstaticjava.sql.DateDateBefore(java.sql.Datedate,intaddday){ java.sql.Datedatenew=null; intyear=DateTime.getYearMonthDate(date.toString(),"Y"); intmonth=DateTime.getYearMonthDate(date.toString(),"M"); intday=DateTime.getYearMonthDate(date.toString(),"D"); day=day-addday; StringdayStr=Integer.toString(year)+"-"+Integer.toString(month) +"-"+Integer.toString(day); datenew=datenew.valueOf(dayStr); //datenew.setTime(datenew.getTime()+day*3600*24*1000); //有问题。改 returndatenew; } //某一天是否是年的头一天 publicstaticbooleanisYearFirstDay(java.sql.Datedate){ booleani=false; if((DateTime.getYearMonthDate(date.toString(),"M")==1) &&(DateTime.getYearMonthDate(date.toString(),"D")==1)){ i=true; } returni; } //某一天是否是半年的头一天 publicstaticbooleanisHalfYearFirstDay(java.sql.Datedate){ booleani=false; if(((DateTime.getYearMonthDate(date.toString(),"M")==1)&&(DateTime .getYearMonthDate(date.toString(),"D")==1)) ||((DateTime.getYearMonthDate(date.toString(),"M")==7)&&(DateTime .getYearMonthDate(date.toString(),"D")==1))){ i=true; } returni; } publicstaticStringgetHalfYearFirstDay(java.sql.Datedate){ Stringmonth="01"; if(DateTime.getYearMonthDate(date.toString(),"M")>=7){ month="07"; } Stringday=Integer.toString(DateTime.getYearMonthDate(date .toString(),"Y")) +"-"+month+"-01"; returnday; } //某一天是否是半年的最后一天 publicstaticbooleanisHalfYearLastDay(java.sql.Datedate){ booleani=false; if(((DateTime.getYearMonthDate(date.toString(),"M")==12)&&(DateTime .getYearMonthDate(date.toString(),"D")==31)) ||((DateTime.getYearMonthDate(date.toString(),"M")==6)&&(DateTime .getYearMonthDate(date.toString(),"D")==30))){ i=true; } returni; } publicstaticStringgetHalfYearLastDay(java.sql.Datedate){ Stringmonth="-06-30"; if(DateTime.getYearMonthDate(date.toString(),"M")>=7){ month="-12-31"; } Stringday=Integer.toString(getYearMonthDate(date.toString(),"Y")) +"-"+month; returnday; } //某一天是否是年的最后一天 publicstaticbooleanisYearLastDay(java.sql.Datedate){ booleani=false; if((DateTime.getYearMonthDate(date.toString(),"M")==12) &&(DateTime.getYearMonthDate(date.toString(),"D")==31)){ i=true; } returni; } //某一天是否是季的头一天 publicstaticbooleanisQuarterFirstDay(java.sql.Datedate){ booleani=false; if(((DateTime.getYearMonthDate(date.toString(),"M")==1) ||(DateTime.getYearMonthDate(date.toString(),"M")==4) ||(DateTime.getYearMonthDate(date.toString(),"M")==7)||(DateTime .getYearMonthDate(date.toString(),"M")==10)) &&(DateTime.getYearMonthDate(date.toString(),"D")==1)){ i=true; } returni; } publicstaticStringgetQuarterFirstDay(java.sql.Datedate){ Stringmonth="01"; if(DateTime.getYearMonthDate(date.toString(),"M")>=10){ month="10"; }elseif(DateTime.getYearMonthDate(date.toString(),"M")>=7){ month="07"; }elseif(DateTime.getYearMonthDate(date.toString(),"M")>=4){ month="04"; }elseif(DateTime.getYearMonthDate(date.toString(),"M")>=1){ month="01"; } Stringday=Integer.toString(DateTime.getYearMonthDate(date .toString(),"Y")) +"-"+month+"-01"; returnday; } //某一天是否是季的最后一天 publicstaticbooleanisQuarterLastDay(java.sql.Datedate){ booleani=false; if((DateTime.getYearMonthDate(date.toString(),"M")==3) &&(DateTime.getYearMonthDate(date.toString(),"D")==31)){ i=true; } if((DateTime.getYearMonthDate(date.toString(),"M")==6) &&(DateTime.getYearMonthDate(date.toString(),"D")==30)){ i=true; } if((DateTime.getYearMonthDate(date.toString(),"M")==9) &&(DateTime.getYearMonthDate(date.toString(),"D")==30)){ i=true; } if((DateTime.getYearMonthDate(date.toString(),"M")==12) &&(DateTime.getYearMonthDate(date.toString(),"D")==31)){ i=true; } returni; } publicstaticStringgetQuarterLastDay(java.sql.Datedate){ Stringmonth="-01-31"; if(DateTime.getYearMonthDate(date.toString(),"M")>=10){ month="-12-31"; }elseif(DateTime.getYearMonthDate(date.toString(),"M")>=7){ month="-09-30"; }elseif(DateTime.getYearMonthDate(date.toString(),"M")>=4){ month="-06-30"; } Stringday=Integer.toString(DateTime.getYearMonthDate(date .toString(),"Y")) +"-"+month; returnday; } //某一天是否是月的最后一天 publicstaticbooleanisMonthLastDay(java.sql.Datedate){ booleani=false; java.sql.Datedes_date=null; Stringmonth; Stringstr_date=date.toString(); Stringyear=str_date.substring(0,str_date.indexOf("-")); intm=newInteger(str_date.substring(str_date.indexOf("-")+1, str_date.lastIndexOf("-"))).intValue()+1; month=newInteger(m).toString(); if(m<10){ month="0"+month; } java.sql.Datemid_date=null; mid_date=mid_date.valueOf(year+"-"+month+"-01"); des_date=DateTime.DateAdd(mid_date,-1); if(DateTime.DateDiff(des_date,date)==0){ i=true; } returni; } //某一天是否是月的第一天 publicstaticbooleanisMonthFisrtDay(java.sql.Datedate){ booleani=false; if((DateTime.getYearMonthDate(date.toString(),"D")==1)){ i=true; } returni; } //获得月的第一天 publicstaticStringgetMonthFisrtDay(java.sql.Datedate) { Stringmonth; if(DateTime.getYearMonthDate(date.toString(),"M")>9){ month=Integer.toString(DateTime.getYearMonthDate(date .toString(),"M")); }else{ month="0" +Integer.toString(DateTime.getYearMonthDate(date .toString(),"M")); } Stringday=Integer.toString(DateTime.getYearMonthDate(date .toString(),"Y")) +"-"+month+"-01"; returnday; } publicstaticjava.sql.TimestampgetTimestamp(){ try{ java.text.SimpleDateFormatmyFormat=newSimpleDateFormat( "yyyy-MM-ddHH:mm:ss"); java.util.Calendarcalendar=java.util.Calendar.getInstance(); Stringmystrdate=myFormat.format(calendar.getTime()); returnjava.sql.Timestamp.valueOf(mystrdate); }catch(Exceptione){ returnnull; } } publicstaticjava.sql.TimestampgetTimestamp(Stringdatestr){ try{ java.text.SimpleDateFormatmyFormat=newSimpleDateFormat( "yyyy-MM-ddHH:mm:ss"); Stringmystrdate=myFormat.format(myFormat.parse(datestr)); returnjava.sql.Timestamp.valueOf(mystrdate); }catch(Exceptione){ returnnull; } } //格式化日期(Y-年,M-月,D-日HH:mm:ss小时:分钟:秒) publicstaticStringgetDate(java.util.Datedate,Stringformat){ Stringresult=null; try{ java.text.SimpleDateFormatmyFormat=newSimpleDateFormat(format); result=myFormat.format(date); }catch(Exceptione){ returnnull; } returnresult; } publicstaticStringgetDate(java.util.Datedate){ returngetDate(date,LONGFORMAT); } //转换成时间戳 publicstaticjava.sql.TimestampgetDate(Stringdatestr){ try{ java.text.SimpleDateFormatmyFormat=newSimpleDateFormat( "yyyy-MM-dd"); Datedate=myFormat.parse(datestr); myFormat.applyLocalizedPattern("yyyy-MM-ddHH:mm:ss"); Stringmystrdate=myFormat.format(date); returnjava.sql.Timestamp.valueOf(mystrdate); }catch(Exceptione){ returnnull; } } //将日期格式化成yyyy-MM-dd形式 publicstaticjava.util.Dateformat(Stringdatestr){ try{ java.text.SimpleDateFormatmyFormat=newSimpleDateFormat( "yyyy-MM-dd"); Datedate=myFormat.parse(datestr); returndate; }catch(Exceptione){ returnnewDate(datestr); } } //格式化日期(Y-年,M-月,D-日HH:mm:ss小时:分钟:秒) publicstaticjava.util.Dateformat(Stringdatestr,Stringformat){ try{ java.text.SimpleDateFormatmyFormat=newSimpleDateFormat(format); Datedate=myFormat.parse(datestr); returndate; }catch(Exceptione){ returnnull; } } //获得数据库格式的日期 publicstaticjava.sql.DategetSqlDate(java.util.Datedate){ java.sql.Dateresult=null; try{ java.text.SimpleDateFormatmyFormat=newSimpleDateFormat( "yyyy-MM-dd"); Stringmystrdate=myFormat.format(date); result=java.sql.Date.valueOf(mystrdate); }catch(Exceptione){ returnnull; } returnresult; } publicstaticjava.util.DateaddMonth(java.util.Datedate,intmonth){ Stringstrdate=getDate(date,SHORTFORMAT); intcurmonth=Integer.parseInt(strdate.substring(5,7)); intyear=Integer.parseInt(strdate.substring(0,4)); intaddyear=month/12; year=year+addyear; curmonth=curmonth+(month%12); if(curmonth>12){ curmonth=1; year=year+1; } Stringstrmonth=String.valueOf(curmonth); if(strmonth.length()==1){ strmonth="0"+strmonth; } strdate=String.valueOf(year)+"-"+strmonth+"-" +strdate.substring(8,10); returnformat(strdate,SHORTFORMAT); } /** *传递日期,获得上个月的最后1天 *@paramdt *@return */ publicstaticStringgetUpMDate(Datedt){ dt.setDate(1); dt.setDate(dt.getDate()-1); returndt.toLocaleString(); } /** *得到当前是那一天。 * */ publicstaticStringgetDate(){ java.text.SimpleDateFormatd=newjava.text.SimpleDateFormat(); d.applyPattern("yyyy-MM-dd"); java.util.Datenowdate=newjava.util.Date(); Stringstr_date=d.format(nowdate); returnstr_date; } /** *将10位日期格式化为8位 *@paramdt *@return */ publicstaticStringgetShortDate(Stringdt){ if(dt!=null){ java.text.SimpleDateFormatmyFormat=newSimpleDateFormat("yyyy-MM-dd"); try{ Datedate=myFormat.parse(dt); returngetDate(date,SHORTFORMATNOSPIT); }catch(ParseExceptione){ returndt; } }else returndt; } /** *将8位日期格式化为10位 *@paramdt *@return */ publicstaticStringgetLongDate(Stringdt){ if(dt!=null){ java.text.SimpleDateFormatmyFormat=newSimpleDateFormat("yyyyMMdd"); try{ Datedate=myFormat.parse(dt); returngetDate(date,SHORTFORMAT); }catch(ParseExceptione){ returndt; } }else returndt; } /** *判断是否是当月 *@parammonth *@return */ publicstaticbooleanisSameYearMonth(Stringdate){ try{ Stringcurrdate=getCurrentDate(); currdate=getShortDate(currdate).substring(0,6); Stringlastdate=getShortDate(date).substring(0,6); if(lastdate.equals(currdate)){ returntrue; }else{ returnfalse; } }catch(NumberFormatExceptione){ returnfalse; } } publicstaticvoidmain(String[]args){ Dated=newDate("20070829"); Datef=newDate("20070912"); System.out.println(d.getDate()-f.getDate()); } }这几天一直在处理
Java的日期问题,通常需要按要求生成日期的话,通常会用到
util包中的
Calendar
类,再用Calendar的getTime()方法生成对应的Date,最后用SimpleDateFormat输出。1.获取当期日期、年份、月份
import
java.util.Calendar;
publicclass
Main{
publicstaticvoid
main(String[]args){
Calendarnow=Calendar.getInstance();
System.out.println(
"CurrentYearis:"
+now.get(Calendar.YEAR));
//monthstartfrom0to11
System.out.println(
"CurrentMonthis:"
+(now.get(Calendar.MONTH)+
1
));
System.out.println(
"CurrentDateis:"
+now.get(Calendar.DATE));
}
}2.[b]获取前一天、前一个月的日期[/b]
Calendarcalendar=Calendar.getInstance();//
此时打印它获取的是系统当前时间
calendar.add(Calendar.DATE,-1);//
得到前一天
StringyestedayDate
=newSimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
calendar.add(Calendar.MONTH,-1);//
得到前一个月
intyear=calendar.get(Calendar.YEAR);
intmonth=calendar.get(Calendar.MONTH)+1;//
输出前一月的时候要记得加
13.字符串转为日期格式
Stringdate="2010-02-0123:59:59";
SimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");
try
{
Dated=sf.parse(date);
System.out.println(sf.format(d));
}catch(ParseExceptione){
e.printStackTrace();
}
相关文章推荐
- MySQL时间日期查询相关函数与方法
- Android关于时间日期相关常用方法
- Android随笔之——Android时间、日期相关类和方法
- Android平台关于时间和日期的相关类和方法(Date/Time)
- Android平台关于时间和日期的相关类和方法(Date/Time)
- MYSQL中常见时间日期相关的表示方法与常用相关函数
- Android平台关于时间和日期的相关类和方法(Date/Time)
- sql 日期时间相关
- 转自“无名的博客”java 时间日期的方法大全讲解
- .Net日期与时间的取得方法
- 15 个与日期时间相关的精典语句函数
- Mysql 计算日期相差时间方法
- T-SQL:15个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受@@DateFirst、语言版本影响
- 15 个与日期时间相关的精典语句函数
- JAVA处理日期(Date)时间(Time)以及相关类的介绍
- 15 个与日期时间相关的精典语句函数
- JAVA处理日期(Date)时间(Time)以及相关类的介绍
- java中两种不同的取日期时间方法
- js日期时间脚本库方法列表