在Java應用中,日期和時間作為基本的資訊類型應用的特別廣泛,例如擷取目前時間,計算某些操作執行的時間等。日期處理相關的類包括Date和Calendar,通過Date和Calendar可以擷取目前時間,對時間進行一些運算,擷取時間中的年、月、日、時、分、秒和星期等資訊。在輸入和輸出的時候經常用到字串形式的時間,這就需要時間和字串之間的相互轉換,系統提供了DateFormat和SimpleDateFormat來完成這個轉換。
java.util.Date類用於表示日期和時間,要擷取目前時間,可以使用下面的代碼:【例】// SimpleDateTest.java import java.util.Date; public class SimpleDateTest { public static void main(String[] args) { // 定義時間對象 Date d = new Date(); // 按照預設格式輸出時間 System.out.println(d.toString()); }}下面是輸出的結果:Mon Dec 11 05:32:13 GMT 2006如果想按照特定的格式進行輸出,可以按照下面的方法完成,但是現在的版本中建議不要使用。【例】// SimpleDate2Test.java import java.util.Date; public class SimpleDate2Test { public static void main(String[] args) { // 定義時間對象 Date d = new Date(); // 擷取年 int year = d.getYear()+1900; // 擷取月 int month = d.getMonth()+1; // 擷取日 int date = d.getDate(); // 擷取時 int hour = d.getHours(); // 擷取分 int minute = d.getMinutes(); // 擷取秒 int second = d.getSeconds(); // 構造輸出字串 System.out.println(year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second); }}執行的結果如下:2006-12-11 5:35:47如果想根據年月日來確定一個Date對象,可以先建立一個對象,然後使用setter方法來完成,例如:setYear(int)、setMonth(int)等,當然這些方法也是建議不使用。如果想對時間進行比較靈活的處理可以使用DateFormat和SimpleDateFormat。如果想按照“2006-12-11 5:35:47”的格式進行輸出,可以使用下面的代碼:【例】// FormatDateTest.java import java.util.Date;import java.text.DateFormat;import java.text.SimpleDateFormat; public class FormatDateTest { public static void main(String[] args) { // 建立時間對象 Date d = new Date(); // 建立時間格式化對象 DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh點mm分ss秒"); // 對時間進行格式化 String str = df.format(d); // 輸出格式化後的時間 System.out.println(str); }}格式中yyyy表示年份,可以寫2位,MM表示月份,可以寫1位,dd表示日,可以寫1位,hh表示小時,mm表示分鐘(注意大小寫),ss表示秒。【注意】DateFormat和SimpleDateFormat在java.text包中,使用的時候需要引入。要想把一個日期文字轉換成一個時間,例如把“2006-2-6”轉換成日期,可以使用下面的代碼:【例】// ParseDateTest.java import java.util.Date;import java.text.DateFormat;import java.text.SimpleDateFormat; public class ParseDateTest { public static void main(String[] args) { //定義日期文字 String dates = "2006-2-6"; //定義日期文字的格式 DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd"); //聲明日期對象 Date d2; try { //把日期文字轉換成日期 d2 = df2.parse(dates); System.out.println(df2.format(d2)); } catch (Exception ex) { } }}【注意】在轉換的時候需要進行異常處理,因為在轉換的時候可能會產生異常。
java.util.Calendar類Calendar中提供了很多對時間中年、月、日、時、分、秒以及星期進行操作的方法,如果想對時間進行比較詳細的操作可以使用Calendar。該類也是抽象類別,使用的時候需要使用getInstance擷取執行個體然後再操作,並且該方法可以擷取與特定時區相對應的執行個體,如果不指定參數,擷取的就是預設的時間。下面的代碼用於擷取當前的時間: Calendar c1 = Calendar.getInstance();要想擷取時間中具體的年月日時分秒或者其他資訊,通過get方法完成,方法的參數用來指定擷取什麼資訊,例如要擷取年月日可以通過下面的程式碼完成: year = c1.get(Calendar.YEAR); month = c1.get(Calendar.MONTH)+1; date = c1.get(Calendar.DATE);要對時間中的某一項修改,使用set方法,方法的定義如下:public void set(int field,int value)第一個參數指定修改的項,第二個參數表示修改後的值,例如把年修改成2003年: c1.set(Calendar.YEAR,2003);如果要同時修改年月日,可以使用下面的方法:public void set(int year,int month,int date)參數分別表示時分秒,下面是同時修改年月日的例子: c1.set(2003,5,5);下面是同時修改年月日時分秒的例子 //修改年月日時分 c1.set(2003,5,5,10,30); //修改年月日時分秒 c1.set(2003,5,5,10,30,20);Date對象和Calendar對象之間可以相互轉換,下面是相應的例子: //把Calendar對象轉換成Date對象 d2 = c1.getTime(); //把日期類型轉換成Calendar類型 c1.setTime(d2);其他方法的用法可以參考JDK的協助文檔。
上一講:
第十五講
方法使用
下一講:第十七講 基本的輸入和輸出 李緒成 CSDN Blog:http://blog.csdn.net/javaeeteacher 邀請您為好友:http://student.csdn.net/invite.php?u=124362&c=7be8ba2b6f3b6cc5