System.currentTimeMillis()返回UTC时间?
我想以毫秒为单位获取当前UTC时间。我搜索了google,并得到了一些System.currentTimeMillis()确实返回UTC时间的答案。但事实并非如此。如果我执行以下操作:
long t1 = System.currentTimeMillis();long t2 = new Date().getTime();
long t3 = Calendar.getInstance().getTimeInMillis();
这三个时间几乎都相同(由于通话,相差以毫秒为单位)。
t1 = 1372060916t2 = 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