软件工程师-Java开发中Date的各种相关用法教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

星期八职场经验网()【现成经验助你快速完成工作】本文主要介绍Java中Date各种相关用法。AD:Java中Date各种相关用法(一)1.计算某一月份的最大天数Java代码1.Calendartime=Calendar.getInstance();2.time.clear();3.time.set(Calendar.YEAR,year);4.time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为05.intday=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间2.Calendar和Date的转化(1)Calendar转化为DateJava代码1.Calendarcal=Calendar.getInstance();2.Datedate=cal.getTime();(2)Date转化为CalendarJava代码1.Datedate=newDate();2.Calendarcal=Calendar.getInstance();3.cal.setTime(date);3.格式化输出日期时间星期八职场经验网()【现成经验助你快速完成工作】Java代码1.Datedate=newDate();2.SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-ddhh:mm:ss);3.System.out.println(df.format(date));4.计算一年中的第几星期(1)计算某一天是一年中的第几星期Java代码1.Calendarcal=Calendar.getInstance();2.cal.set(Calendar.YEAR,2006);3.cal.set(Calendar.MONTH,8);4.cal.set(Calendar.DAY_OF_MONTH,3);5.intweekno=cal.get(Calendar.WEEK_OF_YEAR);(2)计算一年中的第几星期是几号Java代码1.SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-dd);2.Calendarcal=Calendar.getInstance();3.cal.set(Calendar.YEAR,2006);4.cal.set(Calendar.WEEK_OF_YEAR,1);5.cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);6.System.out.println(df.format(cal.getTime()));输出:2006-01-025.add()和roll()的用法(1)add()方法星期八职场经验网()【现成经验助你快速完成工作】Java代码1.SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-dd);2.Calendarcal=Calendar.getInstance();3.cal.set(Calendar.YEAR,2006);4.cal.set(Calendar.MONTH,8);5.cal.set(Calendar.DAY_OF_MONTH,3);6.cal.add(Calendar.DATE,-4);7.Datedate=cal.getTime();8.System.out.println(df.format(date));9.cal.add(Calendar.DATE,4);10.date=cal.getTime();11.System.out.println(df.format(date));输出:2006-08-302006-09-03(2)roll方法Java代码1.cal.set(Calendar.YEAR,2006);2.cal.set(Calendar.MONTH,8);3.cal.set(Calendar.DAY_OF_MONTH,3);4.cal.roll(Calendar.DATE,-4);5.date=cal.getTime();6.System.out.println(df.format(date));7.cal.roll(Calendar.DATE,4);8.date=cal.getTime();9.System.out.println(df.format(date));输出:星期八职场经验网()【现成经验助你快速完成工作】2006-09-292006-09-03可见,roll()方法在本月内循环,一般使用add()方法;Java中Date各种相关用法(二)6.计算两个任意时间中间的间隔天数(1)传进Calendar对象Java代码1./***//**计算两个时间之间相隔天数2.*@paramstartday开始时间3.*@paramendday结束时间4.*@return5.*/6.publicintgetIntervalDays(Calendarstartday,Calendarendday)...{7.//确保startday在endday之前8.if(startday.after(endday))...{9.Calendarcal=startday;10.startday=endday;11.endday=cal;12.}13.//分别得到两个时间的毫秒数14.longsl=startday.getTimeInMillis();15.longel=endday.getTimeInMillis();16.longei=el-sl;17.//根据毫秒数计算间隔天数18.return(int)(ei/(1000*60*60*24));19.}(2)传进Date对象星期八职场经验网()【现成经验助你快速完成工作】Java代码1./***//**计算两个时间之间相隔天数2.*@paramstartday开始时间3.*@paramendday结束时间4.*@return5.*/6.publicintgetIntervalDays(Datestartday,Dateendday)...{7.//确保startday在endday之前8.if(startday.after(endday))...{9.Datecal=startday;10.startday=endday;11.endday=cal;12.}13.//分别得到两个时间的毫秒数14.longsl=startday.getTime();15.longel=endday.getTime();16.longei=el-sl;17.//根据毫秒数计算间隔天数18.return(int)(ei/(1000*60*60*24));19.}同理,可以用相同的方法计算出任意两个时间相隔的小时数,分钟数,秒钟数等注:以上方法是完全按时间计算,有时并不能令人满意,如:startday=2006-10-1120:00:00endday=2006-10-128:00:00计算结果为0,但是我们也许相让计算结果变为1,此时可以用如下方法实现:在传参之前,先设定endday的时间,如:Java代码星期八职场经验网()【现成经验助你快速完成工作】1.endday.set(Calendar.HOUR_OF_DAY,23);2.endday.set(Calendar.MINUTE,59);3.endday.set(Calendar.SECOND,59);4.endday.set(Calendar.MILLISECOND,59);这样再传进去startday,endday,则结果就如我们所愿了。不过,如果嫌以上方法麻烦,可以参考以下方法:(3)改进精确计算相隔天数的方法Java代码1.publicintgetDaysBetween(Calendard1,Calendard2)...{2.if(d1.after(d2))...{//swapdatessothatd1isstartandd2isend3.java.util.Calendarswap=d1;4.d1=d2;5.d2=swap;6.}7.intdays=d2.get(Calendar.DAY_OF_YEAR)-d1.get(Calendar.DAY_OF_YEAR);8.inty2=d2.get(Calendar.YEAR);9.if(d1.get(Calendar.YEAR)!=y2)...{10.d1=(Calendar)d1.clone();11.do...{12.days+=d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到当年的实际天数13.d1.add(Calendar.YEAR,1);14.}while(d1.get(Calendar.YEAR)!=y2);15.}16.returndays;17.}Java中Date各种相关用法(三)获取系统当前时间:Java代码1.publicstaticStringgetSystemTime(){星期八职场经验网()【现成经验助你快速完成工作】2.Datedate=newDate();3.SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);4.returndf.format(date);5.}6.//字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可)7.java.text.SimpleDateFormatsdf=newjava.text.SimpleDateFormat(M/dd/yyyyhh:mm:ssa,java.util.Locale.US);8.java.util.Dated=sdf.parse(5/13/200310:31:37AM);9.SimpleDateFormatformatter=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);10.StringmDateTime1=formatter.format(d);11.//当前时间12.Calendarcal=Calendar.getInstance();13.//SimpleDteFormatformatter=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);14.SimpleDateFormatformatter=newSimpleDateFormat(yyyy-MM-ddHH:mm:ssGEDFwWaEF);15.StringmDateTime=formatter.format(cal.getTime());16.//1年前日期17.java.util.DatemyDate=newjava.util.Date();18.longmyTime=(myDate.getTime()/1000)-60*60*24*365;19.myDate.setTime(myTime*1000);20.StringmDate=formatter.format(myDate);21.//明天日期22.myDate=newjava.util.Date();23.myTime=(myDate.getTime()/1000)+60*60*24;24.myDate.setTime(myTime*1000);25.mDate=for

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功