Java中GMT中的毫秒数

Mic*_*hal 4 java android date

我需要将毫秒转换为GMT日期(在Android应用中),例如:

1372916493000

当我通过此代码转换它:

Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("GMT"));
cal.setTimeInMillis(millis);
Date date = cal.getTime();
Run Code Online (Sandbox Code Playgroud)

结果是07:41 07/04/2013.当我使用时,结果是一样的:

Date date = new Date(millis);
Run Code Online (Sandbox Code Playgroud)

不幸的是结果看起来不正确,看起来像我当地的时间.我尝试通过此服务转换相同的数字,结果是05:41 07/04/2013,我认为是正确的.所以我有两个小时的差异.任何人都有任何建议/提示我的转换有什么问题?

Evg*_*eev 14

如果看起来不正确的结果意味着System.out.println(date)它并不奇怪,因为Date.toString将date转换为本地时区的字符串表示.要在GMT中查看结果,您可以使用此功能

SimpleDateFormat df = new SimpleDateFormat("hh:ss MM/dd/yyyy");
df.setTimeZone(TimeZone.getTimeZone("GMT"));
String result = df.format(millis);
Run Code Online (Sandbox Code Playgroud)