Java 在UTC Android中获取实际时间时遇到问题

Java 在UTC Android中获取实际时间时遇到问题,java,android,datetime,utc,Java,Android,Datetime,Utc,我试图以UTC为单位获取日期和时间,以毫秒为单位,但重复出现相同的问题。结果应该类似于“63530139420000”,但每次返回值“1394547490884” 要获取UTC中的日期和时间,我使用以下方法: long dateutc = System.currentTimeMillis(); 谁能告诉我是什么问题吗?你可以用这个 DateFormat df = DateFormat.getTimeInstance(); df.setTimeZone(TimeZone.getTimeZone(

我试图以UTC为单位获取日期和时间,以毫秒为单位,但重复出现相同的问题。结果应该类似于“63530139420000”,但每次返回值“1394547490884”

要获取UTC中的日期和时间,我使用以下方法:

long dateutc = System.currentTimeMillis();
谁能告诉我是什么问题吗?

你可以用这个

DateFormat df = DateFormat.getTimeInstance();
df.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateutc = df.format(new Date());

您的代码正确获取自1970年1月1日00:00:00 UTC以来的毫秒数

有趣的是,如果你把老师指定的值除以一年中的毫秒数,你就得到了2014.5。所以要么你的老师不知道currentTimeMillis()做什么,要么他想要从第0年开始的毫秒数(这对我来说没有任何意义)


要计算给定日期后的毫秒数,只需创建两个日期实例并从getTime()中减去毫秒值。

很难看出每次都是如何得到相同的值。还有,你怎么知道结果应该是什么?后者看起来比前者更像当前时间。把后一个数字转换成日/月/年,然后对前一个数字做同样的处理。我说错了。我没有得到相同的值,但每次执行时,它都会明显增加,但我的老师告诉我,正确的时间应该是像“63530139420000”这样的值,比我得到的值高得多。我使用的方法正确吗?你用正确的方法获得时间,你对数字应该是什么样子的期望是错误的。我无法解释为什么你的老师认为数字应该是那样的,因为事实并非如此。我想它可能会在将来某个时候使用……当我编写代码时,它会显示以下错误:“类型DateFormat的方法getTimeInstance()未定义”。如何解决?使用java.util.date可能您使用其他日期您必须将DateFormat导入为import java.text.DateFormat;当我输入这段代码时,它会显示实际时间,但我如何将其转换为UTC?现在请检查我的答案。我想他可能想要自年起的毫秒数(我想)。如果是这样的话,我怎么知道?