服务器时区java转换

服务器时区java转换,java,android,date,timezone,Java,Android,Date,Timezone,好吧,我几乎什么都试过了。我打赌这是一件非常简单的事情,但我似乎无法掌握它 服务器向我发送时间,即epoch。然而,当我把它放到一个日期对象中时,它似乎会自动拾取时区,并将+3添加到服务器时间中。所以,如果格林尼治时间是00.00,它说是03.00 我还需要添加我自己的时区。假设大纪元时间又是00.00,加上时区后应该是10.00 任何帮助都将不胜感激。谢谢这似乎是在添加-我怀疑您使用的是Date.toString,它确实使用了本地时区。不过,日期对象本身实际上是UTC格式的。改为使用DateF

好吧,我几乎什么都试过了。我打赌这是一件非常简单的事情,但我似乎无法掌握它

服务器向我发送时间,即epoch。然而,当我把它放到一个日期对象中时,它似乎会自动拾取时区,并将+3添加到服务器时间中。所以,如果格林尼治时间是00.00,它说是03.00

我还需要添加我自己的时区。假设大纪元时间又是00.00,加上时区后应该是10.00


任何帮助都将不胜感激。谢谢

这似乎是在添加-我怀疑您使用的是Date.toString,它确实使用了本地时区。不过,日期对象本身实际上是UTC格式的。改为使用DateFormat执行到字符串的转换,您可以指定要使用的时区。您可能还需要使用日历-这取决于您要做什么

或者,首先使用更好的API。不过,对于您的Android项目来说,它可能有点笨重。如果在某个地方有一个Joda Time lite项目正是为了这类事情,我不会感到惊讶

编辑:快速示例,尽管还不完全清楚您需要什么

long millis = getMillisFromServer();
Date date = new Date(millis);
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
format.setTimeZone(customTimeZone);
String formatted = format.format(date);

能给我举个例子吗。我需要把它和其他东西比较一下else@Hades:现在已经添加了一个,尽管还不完全清楚您要做什么,或者您需要什么格式。假设这是我从服务器1316391494获得的,我想把它转换成澳大利亚时间…我该怎么做…使用Joda time或standard date util。@Hades:看起来是以秒为单位的-你需要做的第一件事是将这个值乘以1000。然后,只需使用适当的澳大利亚时区将其输入到上面的代码中,就可以了。