srcTimeZone为服务器所在的时区。
destTimeZone为目标转换时区。
convertDateBetweenTimeZone为转换函数,输入需要转换的目标时区,和时间戳,返回目标时区的时间戳对应时间
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Test002 {
public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static String dateTransformBetweenTimeZone(Date sourceDate, DateFormat formatter,
TimeZone sourceTimeZone, TimeZone targetTimeZone) {
Long targetTime = sourceDate.getTime() - sourceTimeZone.getRawOffset() + targetTimeZone.getRawOffset();
return getTime(new Date(targetTime), formatter);
}
public static String getTime(Date date, DateFormat formatter) {
return formatter.format(date);
}
public static String convertDateBetweenTimeZone(String timeZone,Long createTime){
DateFormat dateFormat = new SimpleDateFormat("Z");
String localTimeZone = dateFormat.format(new Date());
TimeZone srcTimeZone = TimeZone.getTimeZone("GMT"+localTimeZone);
TimeZone destTimeZone = TimeZone.getTimeZone(timeZone);
DateFormat formatter = new SimpleDateFormat(DATE_FORMAT);
String destDateTime = dateTransformBetweenTimeZone(new Date(createTime), formatter, srcTimeZone, destTimeZone);
return destDateTime;
}
public static void main(String[] args) {
Long datetime = System.currentTimeMillis();
System.out.println(datetime);
System.out.println(convertDateBetweenTimeZone("GMT+9",datetime));
}
}