TimeZone主要是解决跨时区的时间问题,最近在项目中使用了一下,还是比较简单的,在此做下记录。1. 知道本地时间要计算美国洛杉矶的对应时间
/*解析本地时间*/
SimpleDateFormatsdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DatelocalDate = sdf.parse("2011-11-22 13:20:00");
/*根据洛杉矶的时区ID得到时区实例 */
TimeZoneusaZone = TimeZone.getTimeZone("America/Los_Angeles");
/*计算两个时区的差*/
// intlocalInt = zone.getRawOffset();
// intusaInt = usaZone.getRawOffset();
// DateusaDate = new Date(localDate.getTime()-localInt+usaInt);
// System.out.println(localDate.getTime()+"=="+usaInt+"=="+localInt+"=="+usaDate.getTime());
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
sdf.setTimeZone(usaZone);
System.out.println(sdf.getTimeZone());
StringusaDateString = sdf.format(localDate);
中间注释掉的代码是走了弯路,不需要计算时区之间的差,直接解析就OK了
其中
yyyy-MM-dd HH:mm:ss Z
“Z”是时区,不写的话会默认本地时区
对于城市的时区ID可以通过TimeZone.getAvailable()打印出来