JSP虛擬主機,jsp空間,java空間,java虛擬空間JSP虛擬主機,jsp空間,java空間,java虛擬空間

關于Date和Calendar類的基礎用法



作者:    文章來源:
發布日期:2006年07月20日
Date和Calendar是JAVA類庫里提供對時間進行處理的類,由于日期在商業邏輯的應用中占據著很重要的地位,所以在這里想對這兩個類進行一個基本的講解,由于技術有限,不到之處請指正。
Date類顧名思義,一看就知道是和日期有關的類了,這個類最主要的作用就是獲得當前時間了,然而這個類里面也具有設置時間以及一些其他的功能,可是由于本身設計的問題,這些方法卻遭到眾多批評,而這些遭受批評的功能都已移植到另外一個類里面,這就是今天要講到的第二個類Calendar里面。
在講兩個類之前,這里又不能不多提一個類,那就是DateFormat類,這個類是用來格式化日期的,稍后也會講到。
首先,讓我們來看一個獲取當前時間的例子:

Date date = new Date();
System.out.println(date.getTime());

由于本人比較懶,就寫一些主要的語句就行了,上面的語句首先創建了Date的一個對象,接著使用getTime方法獲得當前的時間,但是注意了,輸出后的結果確實一串長整型的數字,這是為什么?實際上這是系統根據當前時間計算出來的一個long型的數,至于是如何計算出來的就不在本文中講述了,那既然這樣的話又如何顯示正確的時間呢?這就要利用到上面的DateFormat類了,這個類是一個基類,它有一個子類是SimpleDateFormat,具體用法請看下面的代碼:

Date date = new Date();
SimpleDateFormat dateFm = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
System.out.println(dateFm.format(date));

這段代碼開始創建了一個Date的對象,用來獲取當前時間,而重點就在于后面的SimpleDateFormat對象,這個對繼承了DateFormat,利用format方法對Date對象進行格式化,然后輸出,而格式的定制是由用戶定制的,EEEE代表星期,MMMM代表月份,而dd代表日,yyyy代表年。使用這個方法就可以根據用戶自定義的格式進行輸出時間。
上面介紹了由用戶自定義格式的輸出時間,下面將來介紹通過JAVA類庫提供的標準格式輸出時間,這就要用到DateFormat類了,請看以下代碼:

Date date = new Date();
DateFormat dateFm = DateFormat.getDateTimeInstance(DateFormat.SHORT,
DateFormat.SHORT);
System.out.println(dateFm.format(date));

這里使用的方法和用戶自定義的方法差不多,只是這里使用的是一個抽象類,由于DateFormat是一個抽象類,所以它不能通過構造函數構造對象,在這里是通過getDateTimeInstance()方法獲得該對象,而所傳遞的參數就是DateFormat里面定義的一些常量,系統根據這些常量輸出當前時間,由于這里使用的是getDateTimeInstance方法,所以將傳遞兩個常量參數,用來分別格式化日期和當前的時間。
上面講述了如何獲得系統時間以及如何格式化輸出,那如果想獲取或者設置時間當中的某一部分又該如何呢?例如年,月,日。這就要靠Calendar這個類了,這個類也是一個抽象類,它有一個子類GregorianCalendar,接下來我會利用這個子類來演示這個過程,請看以下代碼:

DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(new Date());

System.out.println("System Date: " + dateFormat.format(cal.getTime()));

cal.set(GregorianCalendar.DAY_OF_WEEK,GregorianCalendar.FRIDAY);
System.out.println("After Setting Day of Week to Friday: " +
dateFormat.format(cal.getTime()));

這段代碼當中,首先創建了一個DateFormat對象進行格式設置,接著創建了一個GregorianCalendar對象cal,接著使用cal.setTime()方法設置cal對象中的時間為當前時間,然后通過format格式化由cal.getTime()返回的時間進行輸出,后面利用set方法設置cal的日期為當前星期的FRIDAY,此時cal中存儲的時間就是這個星期五的該時刻,而后面利用format格式化輸出,假如當前時間為2005年1月27日星期4的11點30分,那么最后將那句將會輸出2005年1月28日星期5的11點30分。
以上對Date和Calendar類的應用做了個大概的講述,比較粗略,都是比較基礎的,希望高手們講解點其他的高級用途,謝謝。
 
Copyright © 2002-2012 JSPCN.net. All rights reserved.
JSP中文網    備案號:粵ICP備09171188號
成都恒海科技發展有限公司    成都市一環路南二段6號新瑞樓三樓8號
一肖中特公开威up