Java 語言的Calendar(日曆),Date(日期), 和DateFormat(日期格式)組成了Java標準的一個基本但是非常重要的部分。日期是商業邏輯計算一個關鍵的部分。下面小編準備了關於Java中日期的處理方法,歡迎大家參考!
我們將討論下面的類:
1、具體類(和抽象類相對)
2、抽象類Format 和它的一個具體子類,leDateFormat
3、抽象類ndar 和它的一個具體子類,orianCalendar
具體類可以被例項化,但是抽象類卻不能。你首先必須實現抽象類的一個具體子類。
Date 類從Java 開發包(JDK)1.0 就開始進化,當時它只包含了幾個取得或者設定一個日期資料的各個部分的方法,比如說月,日,和年。這些方法現在遭到了批評並且已經被轉移到了Calendar類裡去了,我們將在本文中進一步討論它。這種改進旨在更好的處理日期資料的國際化格式。就象在JDK 1.1中一樣, Date 類實際上只是一個包裹類,它包含的是一個長整型資料, 表示的是從GMT(格林尼治標準時間)1970年,1月1日00:00:00這一刻之前或者是之後經歷的毫秒數。
一、建立一個日期物件r
讓我們看一個使用系統的當前日期和時間建立一個日期物件並返回一個長整數的簡單例子。 這個時間通常被稱為Java 虛擬機器(JVM)主機環境的系統時間。
import ;
public class DateExample1 {
public static void main(String[] args) {
// Get the system date/time
Date date = new Date();
tln(ime());
}
}
在星期六, 2001年9月29日, 下午大約是6:50的樣子, 上面的例子在系統輸出裝置上顯示的結果是 1001803809710. 在這個例子中,值得注意的是我們使用了Date 建構函式建立一個日期物件, 這個建構函式沒有接受任何引數。 而這個建構函式在內部使用了entTimeMillis() 方法來從系統獲取日期。
那麼, 現在我們已經知道了如何獲取從1970年1月1日開始經歷的毫秒數了。 我們如何才能以一種使用者明白的格式來顯示這個日期呢? 在這裡類leDateFormat 和它的抽象基類 Format 就派得上用場了。
二、日期資料的定製格式
假如我們希望定製日期資料的格式, 比方星期六-9月-29日-2001年。 下面的例子展示瞭如何完成這個工作:
import leDateFormat;
import ;
public class DateExample2 {
public static void main(String[] args) {
SimpleDateFormat bartDateFormat =
new SimpleDateFormat(“EEEE-MMMM-dd-yyyy”);
Date date = new Date();
tln(at(date));
}
}
只要通過向SimpleDateFormat 的建構函式傳遞格式字串“EEE-MMMM-dd-yyyy”, 我們就能夠指明自己想要的格式。 你應該可以看見, 格式字串中的ASCII 字元告訴格式化函式下面顯示日期資料的哪一個部分。 EEEE是星期, MMMM是月, dd是日, yyyy是年。 字元的個數決定了日期是如何格式化的。傳遞“EE-MM-dd-yy”會顯示 Sat-09-29-01. 請察看Sun 公司的Web 站點獲取日期格式化選項的.完整的指示。
三、將文字資料解析成日期物件r
假設我們有一個文字字串包含了一個格式化了的日期物件, 而我們希望解析這個字串並從文字日期資料建立一個日期物件。 我們將再次以格式化字串“MM-dd-yyyy” 呼叫SimpleDateFormat類, 但是這一次, 我們使用格式化解析而不是生成一個文字日期資料。 我們的例子, 顯示在下面, 將解析文字字串“9-29-2001”並建立一個值為001736000000 的日期物件。
例子程式:
import leDateFormat;
import ;
public class DateExample3 {
public static void main(String[] args) {
// Create a date formatter that can parse dates of
// the form MM-dd-yyyy.
SimpleDateFormat bartDateFormat =
new SimpleDateFormat(“MM-dd-yyyy”);
// Create a string containing a text date to be parsed.
String dateStringToParse = “9-29-2001”;
try {
// Parse the text version of the date.
// We have to perform the parse method in a
// try-catch construct in case dateStringToParse
// does not contain a date in the format we are expecting.
Date date = e(dateStringToParse);
// Now send the parsed date as a long value
// to the system output.
tln(ime());
}
catch (Exception ex) {
tln(essage());
}
}
}