java(date、calendar类)学习笔记

上传人:xiao****1972 文档编号:84822120 上传时间:2019-03-05 格式:DOC 页数:9 大小:121KB
返回 下载 相关 举报
java(date、calendar类)学习笔记_第1页
第1页 / 共9页
java(date、calendar类)学习笔记_第2页
第2页 / 共9页
java(date、calendar类)学习笔记_第3页
第3页 / 共9页
java(date、calendar类)学习笔记_第4页
第4页 / 共9页
java(date、calendar类)学习笔记_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《java(date、calendar类)学习笔记》由会员分享,可在线阅读,更多相关《java(date、calendar类)学习笔记(9页珍藏版)》请在金锄头文库上搜索。

1、9.6 java.util包 java.util包是Java语言提供的工具类包,该包中包含了如日期、随机数和数据结构实现类等一系列的工具类实现,是学习Java语言的基础包之一。 本部分就以Java语言中常用的时间和日期处理、随机数处理以及集合框架为基础进行介绍。9.6.1 时间和日期处理 使用程序进行时间和日期处理,是程序员必须的一种常用技能,在不同的程序设计语言中提供了不同的格式进行实现,现在就介绍一下Java语言中的实现方式,以及基本的应用,使得对于Java语言的时间和日期处理技术有比较全面的认识。 在程序中,某个固定的时间代表的都是一个时间点,也就是一个时间的瞬间,例如2009年3月8日

2、15点50分0秒,在实际的应用中,经常需要对于两个时间进行比较或计算时间之间的差值,这些功能在Java语言中都可以很方便的实现。 在Java语言中,时间的表达单位是毫秒。也就是说,Java语言中的时间处理可以精确到毫秒。 在Java语言中,表达时间的方式有两种:a、绝对时间。以直观的形式来表达某个时间点,例如2009年10月10号0点0分0秒。使用这种形式表达时间,使用起来比较直观,但是不方便进行时间之间的计算。例如无法很直观的计算2020年1月1号0点0分0秒和上面这个时间之间相差多少天。绝对时间以对象的形式进行表达,Java API中提供了java.util包中的Date类和Calenda

3、r类的对象进行表达。b、相对时间。以一个long型的数字表达某个时间点。例如102847423468。使用这种方式的优缺点和绝对时间刚好相反。这种方式很方便时间之间的计算,但是阅读起来很不直观。在Java API中以需要表达的时间点,例如2009年10月10号0点0分0秒,和GMT(格林威治时间,也就是伦敦时间)1970年1月1号0点0分0秒之间相差的毫秒数作为相对时间的数值,如果该时间在这个时间只好,则相对时间为正数,否则相对时间为负数。Java API中提供了java.lang包中的System类的currentTimeMillis方法,获得以相对时间形式描述的当前系统时间。在实际使用时,

4、绝对时间和相对时间之间可以很方便的进行转换。9.6.1.1 Date类在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。1、使用Date类代表当前系统时间 Date d = new Date(); System.out.println(d);使用Date类的默认构造方法创建出的对象就代表当前时间,由于Date类覆盖了toString方法,所以可以直接输出Date类型的对象,显示的结果如下: Sun Mar 08 16:35:58 CST 2009在

5、该格式中,Sun代表Sunday(周日),Mar代表March(三月),08代表8号,CST代表China Standard Time(中国标准时间,也就是北京时间(东八区)。 2、使用Date类代表指定的时间 Date d1 = new Date(2009-1900,3-1,9); System.out.println(d1);使用带参数的构造方法,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。例如上面的示例代码代表就是2009年3月9号。实际代表具体的年月日时分秒的日期对象,和这个类似。 3、获得Date对象

6、中的信息 Date d2 = new Date(); /年份 int year = d2.getYear() + 1900; /月份 int month = d2.getMonth() + 1; /日期 int date = d2.getDate(); /小时 int hour = d2.getHours(); /分钟 int minute = d2.getMinutes(); /秒 int second = d2.getSeconds(); /星期几 int day = d2.getDay(); System.out.println(年份: + year); System.out.print

7、ln(月份: + month); System.out.println(日期: + date); System.out.println(小时: + hour); System.out.println(分钟: + minute); System.out.println(秒: + second); System.out.println(星期: + day); 使用Date类中对应的get方法,可以获得Date类对象中相关的信息,需要注意的是使用getYear获得是Date对象中年份减去1900以后的值,所以需要显示对应的年份则需要在返回值的基础上加上1900,月份类似。在Date类中还提供了get

8、Day方法,用于获得Date对象代表的时间是星期几,Date类规定周日是0,周一是1,周二是2,后续的依次类推。4、Date对象和相对时间之间的互转 Date d3 = new Date(2009-1900,3-1,10); long time = 1290876532190L; /将Date类的对象转换为相对时间 long t = d3.getTime(); System.out.println(t); /将相对时间转换为Date类的对象 Date d4 = new Date(time); System.out.println(d4); 使用Date对象中的getTime方法,可以将Date

9、类的对象转换为相对时间,使用Date类的构造方法,可以将相对时间转换为Date类的对象。经过转换以后,既方便了时间的计算,也使时间显示比较直观了。9.6.1.2 Calendar类从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现。在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些,下面就介绍一下Calendar类的使用。Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。1、使用Calendar类代表当前时间 Cale

10、ndar c = Calendar.getInstance();由于Calendar类是抽象类,且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,API中提供了getInstance方法用来创建对象。使用该方法获得的Calendar对象就代表当前的系统时间,由于Calendar类toString实现的没有Date类那么直观,所以直接输出Calendar类的对象意义不大。2、使用Calendar类代表指定的时间 Calendar c1 = Calendar.getInstance(); c1.set(2009, 3 - 1, 9);使用Ca

11、lendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。set方法的声明为: public final void set(int year,int month,int date)以上示例代码设置的时间为2009年3月9日,其参数的结构和Date类不一样。Calendar类中年份的数值直接书写,月份的值为实际的月份值减1,日期的值就是实际的日期值。如果只设定某个字段,例如日期的值,则可以使用如下set方法: public void set(int field,int value)在该方法中,参数field代表要设置的字段的类型,常见类型如下:

12、Calendar.YEAR年份 Calendar.MONTH月份 Calendar.DATE日期 Calendar.DAY_OF_MONTH日期,和上面的字段完全相同 Calendar.HOUR12小时制的小时数 Calendar.HOUR_OF_DAY24小时制的小时数 Calendar.MINUTE分钟 Calendar.SECOND秒 Calendar.DAY_OF_WEEK星期几后续的参数value代表,设置成的值。例如: c1.set(Calendar.DATE,10);该代码的作用是将c1对象代表的时间中日期设置为10号,其它所有的数值会被重新计算,例如星期几以及对应的相对时间数值等。3、获得Calendar类中的信息 Calendar c2 = Calendar.getInstance(); /年份 int year = c2.get(Calendar.YEAR); /月份 int month = c2.get(Calendar.MONTH) + 1; /日期

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号