Java基礎:第十六講 日期和時間的使用

來源:互聯網
上載者:User

 

在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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.