讀完了java.util包簡介并教您如何開發應用之一接下來我們繼續介紹Java的實用工具類庫Java.util包。在這個包中,Java提供了一些實用的方法和數據結構。例如,Java提供日期(Data)類、日歷(Calendar)類來產生和獲取日期及時間,提供隨機數(Random)類產生各種類型的隨機數,還提供了堆棧(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等類來表示相應的數據結構。圖1給出了Java.util包的基本層次結構圖。下面我們將具體介紹其中幾個重要的類。
1.2 日期類Date
Java在日期類中封裝了有關日期和時間的信息,用戶可以通過調用相應的方法來獲取系統時間或設置日期和時間。Date類中有很多方法在JDK1.0公布后已經過時了,在8.3中我們將介紹JDK1.0中新加的用于替代Date的功能的其它類。
在日期類中共定義了六種構造函數。(1)public Date()
按字符串s產生一日期對象。s的格式與方法parse中字符串參數的模式相同。例:
創建的日期類對象的日期時間被設置成創建時刻相對應的日期時間。例:
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) 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>
新聞熱點
疑難解答