淺析Java中Data類的應用_JSP編程

來源:互聯網
上載者:User
Date 類從Java 開發包(JDK) 1.0 就開始進化, 當時它只包含了幾個取得或者設定一個日期資料的各個部分的方法, 比如說月, 日, 和年。這些方法現在遭到了批評並且已經被轉移到了Calendar類裡去了, 我們將在本文中進一步討論它。

  這種改進旨在更好的處理日期資料的國際化格式. 就象在JDK 1.1中一樣, Date 類實際上只是一個包裹類, 它包含的是一個長整型資料, 表示的是從GMT(格林尼治標準時間)1970年, 1 月 1日00:00:00這一刻之前或者是之後經曆的毫秒數。

   建立一個日期對象

  讓我們看一個使用系統的當前日期和時間建立一個日期對象並返回一個長整數的簡單例子. 這個時間通常被稱為JAVA 虛擬機器(JVM)主機環境的系統時間.

  import java.util.Date;

  public class DateExample1 {
  public static void main(String[] args) { //自己替換[]
  // Get the system date/time
  Date date = new Date();

  System.out.println(date.getTime());
  }
  }

  在星期六, 2001年9月29日, 下午大約是6:50的樣子,上面的例子在系統輸出裝置上顯示的結果是 1001803809710. 在這個例子中,值得注意的是我們使用了Date 建構函式建立一個日期對象,這個建構函式沒有接受任何參數. 而這個建構函式在內部使用了System.currentTimeMillis() 方法來從系統擷取日期。

  那麼, 現在我們已經知道了如何擷取從1970年1月1日開始經曆的毫秒數了. 我們如何才能以一種使用者明白的格式來顯示這個日期呢? 在這裡類java.text.SimpleDateFormat 和它的抽象基類 java.text.DateFormat 就派得上用場了.

   日期資料的定製格式

  假如我們希望定製日期資料的格式, 比方星期六-9月-29日-2001年. 下面的例子展示了如何完成這個工作:

  import java.text.SimpleDateFormat;
  import java.util.Date;

  public class DateExample2 {

  public static void main(String[] args) { //自己替換[]

  SimpleDateFormat bartDateFormat = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");

  Date date = new Date();
  System.out.println(bartDateFormat.format(date));
  }
  }

  只要通過向SimpleDateFormat 的建構函式傳遞格式字串"EEE-MMMM-dd-yyyy", 我們就能夠指明自己想要的格式. 你應該可以看見, 格式字串中的ASCII 字元告訴格式化函數下面顯示日期資料的哪一個部分. EEEE是星期, MMMM是月, dd是日, yyyy是年. 字元的個數決定了日期是如何格式化的.傳遞"EE-MM-dd-yy"會顯示 Sat-09-29-01. 請察看Sun 公司的Web 網站擷取日期格式化選項的完整的指示.

   將文本資料解析成日期對象

  假設我們有一個文本字串包含了一個格式化了的日期對象, 而我們希望解析這個字串並從文本日期資料建立一個日期對象. 我們將再次以格式化字串"MM-dd-yyyy" 調用SimpleDateFormat類, 但是這一次, 我們使用格式化解析而不是產生一個文本日期資料. 我們的例子, 顯示在下面, 將解析文本字串"9-29-2001"並建立一個值為001736000000 的日期對象.

  例子程式:

  import java.text.SimpleDateFormat;
  import java.util.Date;

  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 = bartDateFormat.parse(dateStringToParse);

   // Now send the parsed date as a long value
   // to the system output.
   System.out.println(date.getTime());
  }
  catch (Exception ex) {
   System.out.println(ex.getMessage());
  }
  }
  }

   使用標準的日期格式化過程

  既然我們已經可以產生和解析定製的日期格式了, 讓我們來看一看如何使用內建的格式化過程. 方法 DateFormat.getDateTimeInstance() 讓我們得以用幾種不同的方法獲得標準的日期格式化過程. 在下面的例子中, 我們擷取了四個內建的日期格式化過程. 它們包括一個短的, 中等的, 長的, 和完整的日期格式.

  import java.text.DateFormat;
  import java.util.Date;

  public class DateExample4 {

  public static void main(String[] args) { //自己替換[]
  Date date = new Date();

  DateFormat shortDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);

  DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);

  DateFormat longDateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);

  DateFormat fullDateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);

  System.out.println(shortDateFormat.format(date));
  System.out.println(mediumDateFormat.format(date));
  System.out.println(longDateFormat.format(date));
  System.out.println(fullDateFormat.format(date));
  }
  }

  注意我們在對 getDateTimeInstance的每次調用中都傳遞了兩個值. 第一個參數是日期風格, 而第二個參數是時間風格. 它們都是基礎資料型別 (Elementary Data Type)int(整型). 考慮到可讀性, 我們使用了DateFormat 類提供的常量: SHORT, MEDIUM, LONG, 和 FULL. 要知道擷取時間和日期格式化過程的更多的方法和選項, 請看Sun 公司Web 網站上的解釋.
  
  運行我們的例子程式的時候, 它將向標準輸出裝置輸出下面的內容:

  9/29/01 8:44 PM
  Sep 29, 2001 8:44:45 PM
  September 29, 2001 8:44:45 PM EDT
  Saturday, September 29, 2001 8:44:45 PM EDT

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.