1. 程式人生 > >Java中的時區類TimeZone的用法

Java中的時區類TimeZone的用法

TimeZone 表示時區偏移量,也可以計算夏令時。

在操作 Date, Calendar等表示日期/時間的物件時,經常會用到TimeZone;因為不同的時區,時間不同。

下面說說TimeZone物件的 2種常用建立方式

1.獲取預設的TimeZone物件

TimeZone tz = TimeZone.getDefault()

2.使用 getTimeZone(String id) 方法獲取TimeZone物件
// 獲取 “GMT+08:00”對應的時區
TimeZone china = TimeZone.getTimeZone("GMT+:08:00");
// 獲取 “中國/重慶”對應的時區
TimeZone chongqing = TimeZone.getTimeZone("Asia/Chongqing");

關於 getTimeZone(String id) 這種方式支援的全部id引數的取值,可以通過以下方式查詢:
 String[] ids = TimeZone.getAvailableIDs();
 for (String id:ids) 
 System.out.printf(id+", ");

GMT 時間(格林時間) 即中央時區時間,北京時間是在東八區,所以北京時間= 格林時間+8小時.

java中得到GMT時間的大程式碼片段如下:

 Calendar cd = Calendar.getInstance();  
 SimpleDateFormat sdf = new SimpleDateFormat("EEE d MMM yyyy HH:mm:ss 'GMT'", Locale.US);  
 sdf.setTimeZone(TimeZone.getTimeZone("GMT")); // 設定時區為GMT  
    String str = sdf.format(cd.getTime());  
    System.out.println(str); 

2012 00:52:42 GMT  // 北京時間:02 08:52:42 CST 2012  


這裡SimpleDateFormat建構函式中的第一個引數是格式化輸出引數,也可根據需要指定: 比如我只需要小時:分鐘:秒, 則把第一個引數改為: “HH:mm:ss” 即可。

輸出: 00:52:42