Java中的時區類TimeZone的用法
阿新 • • 發佈:2019-01-29
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