我有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"
。 我该怎么做? 谢谢。
我有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"
。 我该怎么做? 谢谢。
目前尚不清楚UTC和GMT之间有什么不同 - 为了我们在这里谈论的目的,它们是相同的。 (他们不太技术上是相同的,但是......)
在格式化而言,你只需要设置时区上的格式化程序:
// TODO: Consider setting a locale explicitly
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
format.setTimeZone(TimeZone.getTimeZone("UTC"));
String time = format.format(date);
非常感谢!我没有设置时区。在某些设备中,我获得了GMT + 2.00格式的值,而在其他设备中,我获得了utc值。谢谢。 – Tenaciousd93
@ Tenaciousd93:是的,你还没有设置时区,所以你得到当地时区。如果你想要UTC时区,你需要明确这一点。 –
好的,对不起,我误解了差异。 – Tenaciousd93
试试这个:
long mytime = 1376824500000;
Date date = new Date(mytime);
SimpleDateFormat formater = = new SimpleDateFormat("HH:mm");
formater .setTimeZone(TimeZone.getTimeZone("GMT"));
String time formater.format(date);
将时区设置为GMT。 BTW与大多数语言一样,Java不支持闰秒,所以UTC实际上映射到GMT。 –