由于要做一个俄罗斯的项目,所以项目中要用到俄罗斯的当地时间,纠结了好久才转换过来。
Date d = new Date();
//首先将获取的当前时间转换为时间字符串
String dd = d.toLocaleString();
String format = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(format);
//GMT+8:00是北京时间的时区
String sourceTimeZone="GMT+8:00";
//GMT+3:00是俄罗斯时间,准确的说是莫斯科时间的时区
String targetTimeZone="GMT+3:00";
//获取传入的时间值
Long time = new Date(sdf.parse(dd).getTime()).getTime();
//获取源时区时间相对的GMT时间
LongsourceRelativelyGMT=time-TimeZone.getTimeZone(sourceTimeZone).getRawOffset();
//GMT时间+目标时间时区的偏移量获取目标时间
LongtargetTime=sourceRelativelyGMT+TimeZone.getTimeZone(targetTimeZone).getRawOffset();
Date date= new Date(targetTime);
希望对做国外项目的同学有帮助吧。
原文地址:http://blog.csdn.net/qq_25667339/article/details/46047557