您的位置:首页 > 编程语言 > Java开发

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;//
输出前一月的时候要记得加
1
3.字符串转为日期格式
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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: