2013-07-29 78 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);