利用SimpleDateFormat进行时间的跨时区转换 - Java
* 次方法主要用来将特定时区的时间转换成指定时区的时间,比如将北京时间“2018-04-08 15:40:49.031”,转换对应的美国东部时间是“2018-04-08 03:40:49.031”
* 本方法共三个参数,第一个是待转换的时间,第二个是待转换时间是哪个时区,第三个是需要转换成的时区
* AvailableIDs:
* US/Eastern美国东部时间
* UTC世界标准时间
* PST太平洋标准时间
* Asia/Shanghai上海时间
*/
public String formatToDateUseTimezone(String date,String timezoneid1, String timezoneid2){
TimeZone.setDefault(TimeZone.getTimeZone(timezoneid2));
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
formatter.setTimeZone(TimeZone.getTimeZone(timezoneid1));
Date d = null;
String s = null;
try {
d = formatter.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
s = formatDate(d);
return s;
}
基本概念:
UTC
协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time”/法文“Temps UniverselCoordonné”而来),是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。
GMT
世界时UT即格林尼治时间,格林尼治所在地的标准时间。
Unix Time
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)
是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。