|
Java.util包简介 如何开发应用之二
发表日期:2008-1-5
|
Java的实用工具类库Java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。图1给出了Java.util包的基本层次结构图。下面我们将具体介绍其中几个重要的类。  图1.1 java.util包的基本层次结构 1.2 日期类Date Java在日期类中封装了有关日期和时间的信息,用户可以通过调用相应的方法来获取系统时间或设置日期和时间。Date类中有很多方法在JDK1.0公布后已经过时了,在8.3中我们将介绍JDK1.0中新加的用于替代Date的功能的其它类。 在日期类中共定义了六种构造函数。 (1)public Date() 创建的日期类对象的日期时间被设置成创建时刻相对应的日期时间。例: Date today=new Date(); //today被设置成创建时刻相对应的日期时间。 (2)public Date (long date) long 型的参数date可以通过调用Date类中的static方法parse(String s)来获得。例: long l=Date.parse("Mon 6 Jan 1997 13:3:00"); Date day=new Date(l); //day中时间为1997年 1月6号星期一,13:3:00 (3)public Date(String s) 按字符串s产生一日期对象。s的格式与方法parse中字符串参数的模式相同。例: Date day=new Date("Mon 6 Jan 1997 13:3:00"); //day 中时间为1997年1月6号星期一, 13:3:00 (4)public Date(int year,int month,int date) (5)public Date(int year,int month,int date,int hrs,int min) (6)public Date(int year,int month,int date,int hrs,int min,int sec) 按给定的参数创建一日期对象。 参数说明: year的值为:需设定的年份-1900。例如需设定的年份是1997则year的值应为97,即1997-1900的结果。所以Date中可设定的年份最小为1900; month的值域为0~11,0代表1月,11表代表12月; date的值域在1~31之间; hrs的值域在0~23之间。从午夜到次日凌晨1点间hrs=0,从中午到下午1点间hrs=12; min和sec的值域在0~59之间。 例: Date day=new Date(11,3,4); //day中的时间为:04-Apr-11 12:00:00 AM 另外,还可以给出不正确的参数。例 设定时间为1910年2月30日,它将被解释成3月2日。 Date day=new Date(10,1,30,10,12,34); System.out.println("Day's date is:"+day); //打印结果为:Day's date is: Web Mar 02 10:13:34 GMT+08:00 1910 下面我们给出一些Date类中常用方法。 (1) public static long UTC(int year, int month,int date,int hrs. int min,int sec) 该方法将利用给定参数计算UTC值。UTC是一种计时体制,与GMT(格林威治时间)的计时体系略有差别。UTC计时体系是基于原子时钟的,而GTMT计时体系是基于天文学观测的。计算中使用的一般为GMT计时体系。 (2)public static long parse(String s) 该方法将字符串s转换成一个long型的日期。在介绍构造方法Date(long date)时曾使用过这个方法。 字符串s有一定的格式,一般为: (星期 日 年 时间GMT+时区) 若不注明时区,则为本地时区。 (3)public void setMonth(int month) (4)public int getMonth() 这两个方法分别为设定和获取月份值。 获取的月份的值域为0~11,0代表1月,11代表12月。 (5)public String toString() (6)public String toLocalString() (7)public String toGMTString() 将给定日期对象转换成不同格式的字符串。它们对应的具体的格式可参看例子8.1。 (8)public int getTimezoneOffset() 该方法用于获取日期对象的时区偏移量。 例8.1中对上面介绍的Date类中的基本方法进行了具体的应用,并打印了相应的结果。由于使用了一些过时的方法,所以编译时会有警告信息。另外,由于本例中的时间表示与平台有关,不同的JDK版本对此处理不完全相同,因此不同版本的JDK执行本例的结果可能有细微差异。 例1.1 DateApp.java import java.lang.System; import java.util.Date; public class DateApp { public static void main(String args[]) { Date today=new Date(); //today中的日期被设成创建时刻的日期和时间, 假设创建时刻为1997年3月 //23日17时51分54秒。 System.out.println("Today's date is "+today); //返回一般的时间表示法, 本例中结果为 //Today's date is Fri May 23 17:51:54 1997 System.out.println("Today's date(Internet GMT)is:" +today.toGMTString()); //返回结果为GMT时间表示法, 本例中结果为 //Today's date(Internet GMT)is: 23 May 1997 09:51:54:GMT System.out.println("Today's date(Locale) is:" +today.toLocaleString()); //返回结果为本地习惯的时间表示法, 结果为 //Today's date(Locale)is: 05/23/97 17:51:54 System.out.println("Today's year is: "+today.getYear()); System.out.println("Today's month is: "+(today.getMonth()+1)); System.out.println("Today's date is: "+today.getDate()); //调用Date类中方法,获取年月日的值。 //下面调用了不同的构造方法来创建Date类的对象。 Date day1=new Date(100,1,23,10,12,34); System.out.println ("Day1's date is: "+day1); Date day2=new Date ("Sat 12 Aug 1996 13:3:00"); System.out.println ("Day2's date is: "+day2); long l= Date.parse ("Sat 5 Aug 1996 13:3:00 GMT+0800"); Date day3= new Date(l); System.out.println ("Day3's date(GMT)is: "+day3.toGMTString()); System.out.println ("Day3's date(Locale)is: " +day3.toLocaleString()); System.out.println ("Day3's time zone offset is:" +day3.getTimezoneOffset()); } } 运行结果(JDK1.3版): E:\java\tutorial\java01>java DateApp Today's date is Thu Dec 27 17:58:16 CST 2001 Today's date(Internet GMT)is:27 Dec 2001 09:58:16 GMT Today's date(Locale) is:2001-12-27 17:58:16 Today's year is: 101 Today's month is: 12 Today's date is: 27 Day1's date is: Wed Feb 23 10:12:34 CST 2000 Day2's date is: Fri Aug 12 13:03:00 CST 1996 Day3's date(GMT)is: 5 Aug 1996 05:03:00 GMT Day3's date(Locale)is: 1996-8-5 13:03:00 Day3's time zone offset is:-480 E:\java\tutorial\java01> 1.3 日历类Calendar 在早期的JDK版本中,日期(Date)类附有两大功能:(1)答应用年、月、日、时、分、秒来解释日期:(2)答应对表示日期的字符串进行格式化和句法分析。在JDK1.1中提供了类Calendar来完成第一种功能,类DateFormat来完成第二项功能。 dateFormat是java.text包中的一个类。与Date类有所不同的是,DateFormat类接受用各种语言和不同习惯表示的日期字符串。本节将介绍java.util包中的类Calendar及其它新增加的相关的类。 类Calendar是一个抽象类,它完成日期(Date)类和普通日期表示法(即用一组整型域如YEAR,MONTH,DAY,HOUR表示日期)之间的转换。 由于所使用的规则不同,不同的日历系统对同一个日期的解释有所不同。在JDK1.1中提供了Calendar类一个子类GregorianCalendar??它实现了世界上普遍使用的公历系统。当然用户也可以通过继续Calendar类,并增加所需规则,以实现不同的日历系统。 第GregorianCalendar继续了Calendar类。本节将在介绍类GregorianCalendar的同时顺带介绍Calendar类中的相关方法。 类GregorianCalendar提供了七种构造函数: (1)public GregorianCalendar() 创建的对象中的相关值被设置成指定时区,缺省地点的当前时间,即程序运行时所处的时区、地点的当前时间。 (2)public GregorianCalendar(TimeZone zone) 创建的对象中的相关值被设置成指定时区zone,缺省地点的当前时间。 (3)public GregorianCalendar(Locale aLocale) 创建的对象中的相关值被设置成缺省时区,指定地点aLocale的当前时间。 (4)public GregorianCalendar(TimeZone zone,Local aLocale)
|
|
上一篇:Java.util包简介 如何开发应用之一
人气:542
下一篇:“Java中可复用事件处理的设计与实现”代码
人气:467 |
浏览全部Java的内容
Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐
|
|