2021-2022年收藏的精品资料软件工程师Java开发中Date的各种相关用法教程.docx
《2021-2022年收藏的精品资料软件工程师Java开发中Date的各种相关用法教程.docx》由会员分享,可在线阅读,更多相关《2021-2022年收藏的精品资料软件工程师Java开发中Date的各种相关用法教程.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、星期八职场经验网()【现成经验助你快速完成工作】本文主要介绍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方法之前
2、,必须先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. SimpleDateFormatd
3、f=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)计算一年
4、中的第几星期是几号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()的用法(
5、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. c
6、al.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.for
7、mat(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. publicintgetInt
8、ervalDays(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
9、/(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. lon
10、gsl=startday.getTime();15. longel=endday.getTime();16. longei=el-sl;17. /根据毫秒数计算间隔天数18. return(int)(ei/(1000*60*60*24);19. 同理,可以用相同的方法计算出任意两个时间相隔的小时数,分钟数,秒钟数等注:以上方法是完全按时间计算,有时并不能令人满意,如:startday=2006-10-11 20:00:00endday=2006-10-12 8:00:00计算结果为0,但是我们也许相让计算结果变为1,此时可以用如下方法实现:在传参之前,先设定endday的时间,如:Java代码
11、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)./swapdat
12、essothatd1isstartandd2isend3. 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、得到当年的实际天数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. /字符串转化成时间类型(字符串可以是任
14、意类型,只要和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. /
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 2022 收藏 精品 资料软件 工程师 Java 开发 Date 各种 相关 用法 教程
限制150内