TimeZone 表示时区偏移量,也可以计算夏令时。
在操作 Date, Calendar等表示日期/时间的对象时,经常会用到TimeZone;因为不同的时区,时间不同。
下面说说TimeZone对象的 2种常用创建方式
1.获取默认的TimeZone对象
TimeZone tz = TimeZone.getDefault()
// 获取 “GMT+08:00”对应的时区
TimeZone china = TimeZone.getTimeZone("GMT+:08:00");
// 获取 “中国/重庆”对应的时区
TimeZone chongqing = TimeZone.getTimeZone("Asia/Chongqing");
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
输出: 00:52:42