System.currentTimeMillis()返回UTC时间?

我想以毫秒为单位获取当前UTC时间。我搜索了google,并得到了一些System.currentTimeMillis()确实返回UTC时间的答案。但事实并非如此。如果我执行以下操作:

long t1 = System.currentTimeMillis();

long t2 = new Date().getTime();

long t3 = Calendar.getInstance().getTimeInMillis();

这三个时间几乎都相同(由于通话,相差以毫秒为单位)。

t1 = 1372060916

t2 = 1372060917

t3 = 1372060918

这不是UTC时间,而是我的时区时间。如何在Android中获取当前UTC时间?

回答:

您显示的所有三行都将给出自unix纪元以来的毫秒数,这是一个固定的时间点,不受本地时区的影响。

您说“现在不是UTC时间”-我怀疑您实际上是错误地诊断了这一点。我建议为此使用epochconverter.com。例如,在您的示例中:

1372060916 = Mon, 24 Jun 2013 08:01:56 GMT

我们不知道您何时生成该值,但是除非它 实际上 是UTC上午8:01 ,否则这是系统时钟的问题。

无论是System.currentTimeMillis也不是中值Date本身是由时区的影响。但是,您应该意识到,Date.toString()

它确实 使用了本地时区,这使许多开发人员误认为a Date与时区具有内在联系-并非如此,它只是即时的,没有相关的时区甚至日历系统。

以上是 System.currentTimeMillis()返回UTC时间? 的全部内容, 来源链接: utcz.com/qa/414100.html

回到顶部