關於時間不同時區的轉換問題

由於要做一個俄羅斯的項目,所以項目中要用到俄羅斯的當地時間,糾結了好久才轉換過來。

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);


希望對做國外項目的同學有幫助吧。

 


SimpleDateFormat sdf = new SimpleDateFormat(format);
發佈了38 篇原創文章 · 獲贊 15 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章