熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java高級日期概念

2013-11-23 18:56:39  來源: Java核心技術 

  如果你的Java 程序向處在不同時區或者不同國家的用戶顯示時間和日期那麼你需要了解Java日期類的一些更加高級的方面使用Java Date和Calendar類計算定制和解析日期的這篇文章裡我們提供了對日期日期數據的格式化日期數據的解析和日期計算的一個概覽對於這些概念的深入的理解對於討論更高級的諸如時區國際化標准格式和SQL日期數據等這些有關日期的問題是關鍵的
  
  
  
  我們在本文中討論的類將包含javatextDateFormat以及javautilTimeZone和javautilLocate我們還將討論如何使用一個javautilDate的子類javasqlDate來從Oracle數據庫裡提取和保存Java日期數據
  
  
  
  地區的問題
  
  在我們國際化我們的日期數據以前我們需要進一步的學習Locale類也就是javautilLocaleLocale類的一個實例通常包含國家和語言信息其中的每一個部分都是由基於國際標准化組織(ISO)制定的國家代碼ISO-和語言代碼ISO-的兩字符的字符串構成的
  
  
  
  讓我們來創建兩個Locale實例其中一個對應的是美國英語而另一個對應的是法國法語見表A
  
  
  
  表A
  
  
  
  
  
  import javautilLocale;
  
  
  
  public class DateExample {
  
  
  
  public static void main(String[] args) {
  
  // Create a locale for the English language in the US
  
  Locale localeEN = new Locale(en US);
  
  
  
  Systemoutprintln(Display Name: +
  
  localeENgetDisplayName());
  
  Systemoutprintln(Country: + localeENgetCountry());
  
  Systemoutprintln(Language: + localeENgetLanguage());
  
  
  
  // Create a locale for the French language in France
  
  Locale localeFR = new Locale(fr FR);
  
  Systemoutprintln(\nDisplay Name: +
  
  localeFRgetDisplayName());
  
  Systemoutprintln(Country: + localeFRgetCountry());
  
  Systemoutprintln(Language: + localeFRgetLanguage());
  
  
  
  // Display the EnglishUS locale in French
  
  Systemoutprintln(\nen Display Name in French: +
  
  localeENgetDisplayName(localeFR));
  
  }
  
  }
  
  
  
  
  
  
  
  在這個例子中我們用getDisplayName方法來顯示Locale的一個更易讀的文本你還應該注意到我們在最後一次調用getDisplayName的時候我們在對English Locale對象調用getDisplayName的時候同時傳遞了French Locale對象這允許我們選擇顯示Locale對象所用的語言讓我們用英語顯示法語Locale對象的內容下面是這個例子的輸出
  
  
  
  Display Name: English (United States)
  
  Country: US
  
  Language: en
  
  Display Name: French (France)
  
  Country: FR
  
  Language: fr
  
  en Display Name in French: anglais (étatsUnis)
  
  
  
  多個地域的日期格式化
  
  使用javautilLocale和javatextDateFormat類我們就能夠格式化日期數據把它顯示給在另一個地域的用戶比方法國表B中的例子為英語和法語各創建了一個完整的日期格式化器
  
  
  
  表 B
  
  
  
  
  
  import javautilLocale;
  
  import javautilDate;
  
  import javatextDateFormat;
  
  
  
  public class DateExample {
  
  
  
  public static void main(String[] args) {
  
  // Get the current system date and time
  
  Date date = new Date();
  
  
  
  // Get a France locale using a Locale constant
  
  Locale localeFR = LocaleFRANCE;
  
  
  
  // Create an English/US locale using the constructor
  
  Locale localeEN = new Locale(en US );
  
  
  
  // Get a date time formatter for display in France
  
  DateFormat fullDateFormatFR =
  
  DateFormatgetDateTimeInstance(
  
  DateFormatFULL
  
  DateFormatFULL
  
  localeFR);
  
  
  
  // Get a date time formatter for display in the US
  
  DateFormat fullDateFormatEN =
  
  DateFormatgetDateTimeInstance(
  
  DateFormatFULL
  
  DateFormatFULL
  
  localeEN);
  
  
  
  Systemoutprintln(Locale: + localeFRgetDisplayName());
  
  Systemoutprintln(fullDateFormatFRformat(date));
  
  Systemoutprintln(Locale: + localeENgetDisplayName());
  
  Systemoutprintln(fullDateFormatENformat(date));
  
  }
  
  }
  
  
  
  
  
  
  
  這個例子的輸出是
  
  
  
  Locale: French (France)
  
  vendredi octobre h GMT:
  
  Locale: English (United States)
  
  Friday October :: PM EDT
  
  
  
  注意這個輸出包括了時區信息GMT: 和 PM EDT這個時區是人系統的時區設置裡捕獲的你可以看見日期是以那個地區的用戶期望的格式顯示的
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26011.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.