java日期获取及转换.docx
《java日期获取及转换.docx》由会员分享,可在线阅读,更多相关《java日期获取及转换.docx(20页珍藏版)》请在冰豆网上搜索。
java日期获取及转换
packagecom.sevnce.util.date;
importjava.sql.Timestamp;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.GregorianCalendar;
/**
*时间操作器
*
*@authorAlien
*
*/
@SuppressWarnings("static-access")
publicclassTimeFormator{
//dat格式为:
"1900-02-2112:
23:
33";
publicstaticDatefromStrToDate(Stringdat){
SimpleDateFormatdateformat=newSimpleDateFormat(
"yyyy-MM-ddHH:
mm:
ss");
Datedate=null;
try{
date=dateformat.parse(dat);
}catch(ParseExceptione){
e.printStackTrace();
}
returndate;
}
/**
*获取农历
*
*@return
*/
publicStringgetChinesDate(){
returnnewChineseDate().getChineseDateString();
}
/**
*获取农历
*
*@return
*/
publicstaticStringgetChinesDate(Stringtime){
returnnewChineseDate(strToDate(time)).getChineseDateString();
}
publicstaticintgetHour(){
Calendarc=Calendar.getInstance();
returnc.get(Calendar.HOUR_OF_DAY);
}
/**
*获取今天时间格式YY-MM-DD
*
*@return
*/
publicstaticStringgetToday(){
Stringstr="";
SimpleDateFormatdateformat=newSimpleDateFormat("yyyy-MM-dd");
str=dateformat.format(newDate());
returnstr;
}
/**
*获取现在时间格式:
yy-mm-ddHH:
mm:
ss
*
*@return
*/
publicstaticStringgetNow(){
Stringstr="";
Calendarc=Calendar.getInstance();
SimpleDateFormatdateformat=newSimpleDateFormat(
"yyyy-MM-ddHH:
mm:
ss");
str=dateformat.format(c.getTime());
returnstr;
}
/**
*获取现在时间格式:
yy-mm-ddHH:
mm:
ss
*
*@returnTIMESTAMP
*/
publicstaticTimestampgetNowTimestamp(){
Stringstr="";
SimpleDateFormatdateformat=newSimpleDateFormat(
"yyyy-MM-ddHH:
mm:
ss");
str=dateformat.format(newDate());
returnfromStringToTimestamp(str);
}
/**
*获取现在的时间格式:
xxxx年xx月xx日xx:
xx:
ss
*
*@return
*/
publicstaticStringgetNowWithChin(){
Datenow=newDate();
SimpleDateFormatdateformat=newSimpleDateFormat(
"yyyy年MM月dd日HH:
mm:
ss");
Stringstr6=dateformat.format(now);
returnstr6;
}
publicstaticStringgetTodayWithChin(){
Datenow=newDate();
SimpleDateFormatdateformat=newSimpleDateFormat("yyyy年MM月dd日");
Stringstr=dateformat.format(now);
//Calendarc=Calendar.getInstance();
//inty=c.get(Calendar.YEAR);
//intm=c.get(Calendar.MONTH)+1;
//intd=c.get(Calendar.DATE);
//Stringmon,day="";
//if(m<10){mon="0"+m;}else{mon=String.valueOf(m);}
//if(d<10){
//day="0"+d;
//}else{day=String.valueOf(d);}
//Stringstr=""+y+"年"+mon+"月"+day+"日";
returnstr;
}
/**
*String转化为timestamp
*
*@paramtime
*@return
*/
publicstaticTimestampfromStringToTimestamp(Stringtime){
Timestampts=Timestamp.valueOf(time);
returnts;
}
/**
*获取间隔今天N天的日期负数为过去
*
*@paramn
*@return
*/
publicstaticStringgetTheDay(intn){
SimpleDateFormatmyFormatter=newSimpleDateFormat("yyyy-MM-dd");
longday=0;
longtemp=0;
Stringdays="";
try{
Datedate=newDate();
day=date.getTime();
temp=24*60*60*1000*(n);
days=myFormatter.format(day+temp);
}catch(Exceptione){
return"";
}
returndays;
}
/**
*获取间隔今天N天的日期负数为过去
*
*@paramn
*@returnYYYY-MM-DDHH:
mm:
ss
*/
publicStringgetTheDayFromADay(intn,Stringtime){
Stringtimes="";
Stringtemp=this.getTheDate(n);
temp=temp+"23:
59:
59";
returntimes;
}
/**
*得到二个日期间的间隔天数
*/
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+"";
}
//获取当天时间
publicStringgetNowTime(Stringdateformat){
Datenow=newDate();
SimpleDateFormatdateFormat=newSimpleDateFormat(dateformat);//可以方便地修改日期格式
Stringhehe=dateFormat.format(now);
returnhehe;
}
/**
*获取上一月月
*
*@return
*/
publicstaticStringgetTheDateForMonth(){
Calendarcd=Calendar.getInstance();
intday=cd.get(Calendar.DATE);
intmonth=cd.get(Calendar.MONTH);
intyear=cd.get(Calendar.YEAR);
returnyear+"-"+month+"-"+day;
}
//获得当前日期与本周日相差的天数
privatestaticintgetMondayPlus(){
Calendarcd=Calendar.getInstance();
//获得今天是一周的第几天,星期日是第一天,星期二是第二天......
intdayOfWeek=cd.get(Calendar.DAY_OF_WEEK)-1;//因为按中国礼拜一作为第一天所以这里减1
if(dayOfWeek==1){
return0;
}else{
return1-dayOfWeek;
}
}
//获得下个月最后一天的日期
publicStringgetNextMonthEnd(){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
CalendarlastDate=Calendar.getInstance();
lastDate.add(Calendar.MONTH,1);//加一个月
lastDate.set(Calendar.DATE,1);//把日期设置为当月第一天
lastDate.roll(Calendar.DATE,-1);//日期回滚一天,也就是本月最后一天
str=sdf.format(lastDate.getTime());
returnstr;
}
/**
*获取长时间计算返回和今天相差多少天的日期
*
*@paramtime
*@paramn
*@returnyyyy-mm-dd
*/
publicStringgetTheDate(intn){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
Calendardate=Calendar.getInstance();
date.roll(date.DATE,n);
str=sdf.format(date.getTime());
returnstr;
}
/**
*当前时间加上hourtype:
1为精确到分钟2:
精确到秒
*
*@return结果时间
*/
publicstaticStringgetTimeBYhour(Integerhour,inttype){
if(hour==null){
returnnull;
}
SimpleDateFormatsdf=null;
Datedate1=newDate();
if(type==1){
sdf=newSimpleDateFormat("yyyy-MM-ddHH:
mm");
}elseif(type==2){
sdf=newSimpleDateFormat("yyyy-MM-ddHH:
mm:
ss");
}
longTime=(date1.getTime()/1000)+60*60*hour;
Datedate2=newDate(Time*1000);
returnsdf.format(date2);
}
/**
*返回和今天相差月数日期
*
*@paramn
*@return
*/
publicStringgetTheMonthDay(intn){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
Calendardate=Calendar.getInstance();
Datenow=date.getTime();
longnow1=now.getTime();
intk=(n/12)+1;
date.roll(date.MONTH,n);
if(n>0&&(date.getTime().getTime()date.roll(date.YEAR,k);
str=sdf.format(date.getTime());
returnstr;
}
/**
*比较时间是否大于今天
*
*@paramtime
*yyyy-MM-dd
*@return
*/
publicstaticbooleanTimeCompareToday(Stringtime){
SimpleDateFormatdateformat=newSimpleDateFormat("yyyy-MM-dd");
Calendarc1=Calendar.getInstance();
Calendarc2=Calendar.getInstance();
try{
c2.setTime(dateformat.parse(time));
}catch(ParseExceptione){
e.printStackTrace();
}
if(c2.after(c1)){
returntrue;
}else
returnfalse;
}
/**
*比较时间是否大于今天
*
*@paramtime
*yyyy-MM-dd
*@return
*/
publicstaticintTimeCompareTodays(Stringtime){
SimpleDateFormatdateformat=newSimpleDateFormat("yyyy-MM-dd");
Calendarc1=Calendar.getInstance();
Calendarc2=Calendar.getInstance();
try{
c2.setTime(dateformat.parse(time));
c1.setTime(dateformat.parse(TimeFormator.getToday()));
}catch(ParseExceptione){
e.printStackTrace();
}
if(c2.equals(c1)){
return1;
}else
return0;
}
/**
*获取两个日期之间的差距
*
*@params
*开始时间
*@parame
*结束时间
*@paramformat
*格式
*@return天
*/
publicstaticintgetDaysBetween(Strings,Stringe,Stringformat){
SimpleDateFormatdateformat=newSimpleDateFormat(format);
Calendarc1=Calendar.getInstance();
Calendarc2=Calendar.getInstance();
try{
c2.setTime(dateformat.parse(s));
c1.setTime(dateformat.parse(e));
doublemm=(c1.getTimeInMillis()-c2.getTimeInMillis())/24/3600/1000;
intk=(int)mm;
returnk;
}catch(ParseExceptionee){
ee.printStackTrace();
}
return0;
}
//------------------------------------------------------------------------------------------------------------------
publicstaticvoidmain(String[]args){
TimeFormatort=newTimeFormator();
intis=newTimeFormator().TimeCompareTodays("2011-05-26");
if(is==1){
t.getTheDate(-10);
System.out.println("等于了今天");
}else{
System.out.println("不等于了今天");
}
}
/**
*获取本月天数
*
*@return
*/
publicstaticintgetNowMonthDays(){
Calendarcal=Calendar.getInstance();
intyear=cal.get(Calendar.YEAR);
intmonth=cal.get(Calendar.MONTH)+1;
returngetDaysInTheMonth(year,month);
}
/**
*获取当前号数
*
*@return
*/
publicstaticintgetTheDateToday(){
Calendarcal=Calendar.getInstance();
returncal.get(Calendar.DATE);
}
/**
*获取当前月
*
*@return
*/
publicstaticintgetTheMonthToday(){
Calendarcal=Calendar.getInstance();
returncal.get(Calendar.MONTH)+1;
}
/**
*获取当前周一的日期
*
*@return
*/
publicstaticStringgetWeekday(){
intmondayPlus=getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus);
Datemonday=currentDate.getTime();
SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-dd");
StringpreMonday=df.format(monday);
returnpreMonday;
}
/**
*获取当前周一的号数
*
*@return
*/
publicstaticintgetMondayInMonth(){
Stringk=getWeekday();
Stringt=k.substring(8);
intm=Integer.parseInt(t);
returnm;
}
/**
*根据一个日期,返回是星期几的字符串
*
*@paramsdate
*@return
*/
publicstaticStringgetWeek(Stringsdate){
Calendarc=Calendar.getInstance();
c.setTime(strToDate(sdate));
returnnewSimpleDateFormat("EEEE").format(c.getTime());
}
/**
*将短