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

Java高級日期概念二

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

  時區
  
  TimeZone類即javautilTimeZone類的實例包含了一個與格林威治標准時間(GMT)相比較得出的以微秒為單位的時區偏移量而且它還處理夏令時
  
  要獲得一個所有支持的進區的列表你可以使用方法TimeZonegetAvailableIDs它將返回一個包含了所有進區ID的字符串數組要知道關於TimeZone類的更多細節可以參看Sun公司的Web站點
  
  
  
  為了演示這個概念我們將創建三個時區對象第一個對象將使用getDefault從系統時鐘返回時區數據第二個和第三個對象將傳入一個時區字符串ID見表C中的代碼
  
  
  
  表 C
  
  
  
  
  
  import javautilTimeZone;
  
  import javautilDate;
  
  import javatextDateFormat;
  
  import javautilLocale;
  
  
  
  public class DateExample {
  
  
  
  public static void main(String[] args) {
  
  // Get the system time zone
  
  TimeZone timeZoneFL = TimeZonegetDefault();
  
  Systemoutprintln(\n + timeZoneFLgetDisplayName());
  
  Systemoutprintln(RawOffset: + timeZoneFLgetRawOffset());
  
  Systemoutprintln(Uses daylight saving: + timeZoneFLuseDaylightTime());
  
  
  
  TimeZone timeZoneLondon = TimeZonegetTimeZone(Europe/London);
  
  Systemoutprintln(\n + timeZoneLondongetDisplayName());
  
  Systemoutprintln(RawOffset: + timeZoneLondongetRawOffset());
  
  Systemoutprintln(Uses daylight saving: + timeZoneLondonuseDaylightTime());
  
  
  
  燭imeZone timeZoneParis = TimeZonegetTimeZone(Europe/Paris);
  
  Systemoutprintln(\n + timeZoneParisgetDisplayName());
  
  Systemoutprintln(RawOffset: + timeZoneParisgetRawOffset());
  
  Systemoutprintln(Uses daylight saving: + timeZoneParisuseDaylightTime());
  
  }
  
  }
  
  
  
  
  
  
  
  其輸出如下
  
  
  
  Eastern Standard Time
  
  RawOffset:
  
  Uses daylight saving: true
  
  GMT+:
  
  RawOffset:
  
  Uses daylight saving: true
  
  
  
  Central European Standard Time
  
  RawOffset:
  
  Uses daylight saving: true
  
  
  
  正如你所看見的TimeZone對象給我們的是原始的偏移量也就是與GMT相差的微秒數而且還會告訴我們這個時區是否使用夏令時有個這個信息我們就能夠繼續將時區對象和日期格式化器結合在一起在其它的時區和其它的語言顯示時間了
  
  
  
  國際化的時期顯示了時區轉換
  
  讓我們來看一個結合了國際化顯示時區和日期格式化的例子表D為一個在邁阿密和巴黎擁有辦公室的公司顯示了當前的完整日期和時間對於邁阿密的辦公室我們將在每個辦公室裡用英語顯示完整的日期和時間對於巴黎的辦公室我們將用法語顯示完整的當前日期和時間
  
  
  
  表 D
  
  
  
  
  
  import javautilTimeZone;
  
  import javautilDate;
  
  import javautilLocale;
  
  import javatextDateFormat;
  
  
  
  public class DateExample {
  
  
  
  public static void main(String[] args) {
  
  Locale localeEN = LocaleUS;
  
  Locale localeFrance = LocaleFRANCE;
  
  
  
  TimeZone timeZoneMiami = TimeZonegetDefault();
  
  TimeZone timeZoneParis = TimeZonegetTimeZone(Europe/Paris);
  
  
  
  DateFormat dateFormatter = DateFormatgetDateTimeInstance(
  
  DateFormatFULL
  
  DateFormatFULL
  
  localeEN);
  
  DateFormat dateFormatterParis = DateFormatgetDateTimeInstance(
  
  DateFormatFULL
  
  DateFormatFULL
  
  localeFrance);
  
  
  
  Date curDate = new Date();
  
  
  
  Systemoutprintln(Display for Miami office);
  
  // Print the Miami time zone display name in English
  
  Systemoutprintln(timeZoneMiamigetDisplayName(localeEN));
  
  // Set the time zone of the dateFormatter to Miami time zone
  
  dateFormattersetTimeZone(timeZoneMiami);
  
  // Print the formatted date
  
  Systemoutprintln(dateFormatterformat(curDate));
  
  
  
  // Set the time zone of the date formatter to Paris time zone
  
  dateFormattersetTimeZone(timeZoneParis);
  
  // Print the Paris time zone display name in English
  
  Systemoutprintln(timeZoneParisgetDisplayName(localeEN));
  
  // Print the Paris time in english
  
  Systemoutprintln(dateFormatterformat(curDate));
  
  
  
  Systemoutprintln(\nDisplay for Paris office);
  
  // Print the Miami time zone display name in French
  
  Systemoutprintln(timeZoneMiamigetDisplayName(localeFrance));
  
  // Set the timezone of the
  
  // dateFormatterParis to Miami time zone
  
  dateFormatterParissetTimeZone(timeZoneMiami);
  
  // Print the formatted date in French
  
  燬ystemoutprintln(dateFormatterParisformat(curDate));
  
  
  
  // Set the timezone of the date formatter to Paris time zone
  
  dateFormatterParissetTimeZone(timeZoneParis);
  
  // Print the Paris time zone display name in French
  
  Systemoutprintln(timeZoneParisgetDisplayName(localeFrance));
  
  // Print the Paris time in French
  
  Systemoutprintln(dateFormatterParisformat(curDate));
  
  }
  
  }
  
  
  
  
  
  
  
  這個例子的輸出是
  
  
  
  Display for Miami office
  
  Eastern Standard Time
  
  Friday October :: PM EDT
  
  Central European Standard Time
  
  Saturday October :: AM CEST
  
  Display for Paris office
  
  GMT:
  
  vendredi octobre h GMT:
  
  GMT+:
  
  samedi octobre h GMT+:
  

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26088.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.