java的时间操作.docx
《java的时间操作.docx》由会员分享,可在线阅读,更多相关《java的时间操作.docx(26页珍藏版)》请在冰豆网上搜索。
java的时间操作
java的时间操作
2008年02月01日星期五11:
12
/**
日期类
*@date2003-12-04
*@version1.0
*/
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])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").