1.1.1.1.1 日期類Date
Java在日期類中封裝了有關(guān)日期和時(shí)間的信息,用戶可以通過(guò)調(diào)用相應(yīng)的方法來(lái)獲取系統(tǒng)時(shí)間或設(shè)置日期和時(shí)間。Date類中有很多方法在JDK1.0公布后已經(jīng)過(guò)時(shí)了,在8.3中我們將介紹JDK1.0中新加的用于替代Date的功能的其它類。
在日期類中共定義了六種構(gòu)造函數(shù)。
(1)public Date()
創(chuàng)建的日期類對(duì)象的日期時(shí)間被設(shè)置成創(chuàng)建時(shí)刻相對(duì)應(yīng)的日期時(shí)間。
例 Date today=new Date();//today被設(shè)置成創(chuàng)建時(shí)刻相對(duì)應(yīng)的日期時(shí)間。
(2)public Date (long date)
long 型的參數(shù)date可以通過(guò)調(diào)用Date類中的static方法parse(String s)來(lái)獲得。
例 long l=Date.parse("Mon 6 Jan 1997 13:3:00");
Date day=new Date(l);
//day中時(shí)間為1997年 1月6號(hào)星期一,13:3:00。
(3)public Date(String s)
按字符串s產(chǎn)生一日期對(duì)象。s的格式與方法parse中字符串參數(shù)的模式相同。
例 Date day=new Date("Mon 6 Jan 1997 13:3:00");
//day 中時(shí)間為1997年1月6號(hào)星期一,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)
按給定的參數(shù)創(chuàng)建一日期對(duì)象。
參數(shù)說(shuō)明:
year的值為:需設(shè)定的年份-1900。例如需設(shè)定的年份是1997則year的值應(yīng)為97,即1997-1900的結(jié)果。所以Date中可設(shè)定的年份最小為1900;
month的值域?yàn)?~11,0代表1月,11表代表12月;
date的值域在1~31之間;
hrs的值域在0~23之間。從午夜到次日凌晨1點(diǎn)間hrs=0,從中午到下午1點(diǎn)間hrs=12;
min和sec的值域在0~59之間。
例 Date day=new Date(11,3,4);
//day中的時(shí)間為:04-Apr-11 12:00:00 AM
另外,還可以給出不正確的參數(shù)。
例 設(shè)定時(shí)間為1910年2月30日,它將被解釋成3月2日。
Date day=new Date(10,1,30,10,12,34);
System.out.println("Day's date is:"+day);
//打印結(jié)果為: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)
該方法將利用給定參數(shù)計(jì)算UTC值。UTC是一種計(jì)時(shí)體制,與GMT(格林威治時(shí)間)的計(jì)時(shí)體系略有差別。UTC計(jì)時(shí)體系是基于原子時(shí)鐘的,而GTMT計(jì)時(shí)體系是基于天文學(xué)觀測(cè)的。計(jì)算中使用的一般為GMT計(jì)時(shí)體系。
(2)public static long parse(String s)
該方法將字符串s轉(zhuǎn)換成一個(gè)long型的日期。在介紹構(gòu)造方法Date(long date)時(shí)曾使用過(guò)這個(gè)方法。
字符串s有一定的格式,一般為:
(星期 日 年 時(shí)間GMT+時(shí)區(qū))
若不注明時(shí)區(qū),則為本地時(shí)區(qū)。
(3)public void setMonth(int month)
(4)public int getMonth()
這兩個(gè)方法分別為設(shè)定和獲取月份值。
獲取的月份的值域?yàn)?~11,0代表1月,11代表12月。
(5)public String toString()
(6)public String toLocalString()
(7)public String toGMTString()
將給定日期對(duì)象轉(zhuǎn)換成不同格式的字符串。它們對(duì)應(yīng)的具體的格式可參看例子8.1。
(8)public int getTimezoneOffset()
該方法用于獲取日期對(duì)象的時(shí)區(qū)偏移量。
例8.1中對(duì)上面介紹的Date類中的基本方法進(jìn)行了具體的應(yīng)用,并打印了相應(yīng)的結(jié)果。由于使用了一些過(guò)時(shí)的方法,所以編譯時(shí)會(huì)有警告信息。另外,由于本例中的時(shí)間表示與平臺(tái)有關(guān),不同的JDK版本對(duì)此處理不完全相同,因此不同版本的JDK執(zhí)行本例的結(jié)果可能有細(xì)微差異。
例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中的日期被設(shè)成創(chuàng)建時(shí)刻的日期和時(shí)間,假設(shè)創(chuàng)建時(shí)刻為1997年3月
//23日17時(shí)51分54秒。
System.out.println("Today's date is "+today);
//返回一般的時(shí)間表示法,本例中結(jié)果為
//Today's date is Fri May 23 17:51:54 1997
System.out.println("Today's date(Internet GMT)is:"
+today.toGMTString());
//返回結(jié)果為GMT時(shí)間表示法,本例中結(jié)果為
//Today's date(Internet GMT)is: 23 May 1997 09:51:54:GMT
System.out.println("Today's date(Locale) is:"
+today.toLocaleString());
//返回結(jié)果為本地習(xí)慣的時(shí)間表示法,結(jié)果為
//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());
//調(diào)用Date類中方法,獲取年月日的值。
//下面調(diào)用了不同的構(gòu)造方法來(lái)創(chuàng)建Date類的對(duì)象。
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());
}
}
運(yùn)行結(jié)果(JDK1.3版,與原文不同,原文是JDK1.0版):
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>
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |