2013-07-29 189 views
0

我有GMT時間變量,我將以UTC轉換。我後我的代碼..Android從GMT毫秒獲得UTC毫秒

long mytime = 1376824500000; 
Date date = new Date(mytime); 
String time = new SimpleDateFormat("HH:mm").format(date); 

這回在某些設備"13:15",但我想有總是UTC日期:"11:15"。 我該怎麼做? 謝謝。

+0

將時區設置爲GMT。 BTW與大多數語言一樣,Java不支持閏秒,所以UTC實際上映射到GMT。 –

回答

4

目前尚不清楚UTC和GMT之間有什麼不同 - 爲了我們在這裏談論的目的,它們是相同的。 (他們不太技術上是相同的,但是......)

格式化而言,你只需要設置時區上的格式化程序:

// TODO: Consider setting a locale explicitly 
SimpleDateFormat format = new SimpleDateFormat("HH:mm"); 
format.setTimeZone(TimeZone.getTimeZone("UTC")); 
String time = format.format(date); 
+0

非常感謝!我沒有設置時區。在某些設備中,我獲得了GMT + 2.00格式的值,而在其他設備中,我獲得了utc值。謝謝。 – Tenaciousd93

+0

@ Tenaciousd93:是的,你還沒有設置時區,所以你得到當地時區。如果你想要UTC時區,你需要明確這一點。 –

+0

好的,對不起,我誤解了差異。 – Tenaciousd93

1

試試這個:

long mytime = 1376824500000; 
Date date = new Date(mytime); 
SimpleDateFormat formater = = new SimpleDateFormat("HH:mm"); 
formater .setTimeZone(TimeZone.getTimeZone("GMT")); 
String time formater.format(date);