当前位置: 首页 > 面试题库 >

System.currentTimeMillis()返回UTC时间?

佴涵蓄
2023-03-14
问题内容

我想以毫秒为单位获取当前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与时区具有内在联系-并非如此,它只是即时的,没有相关的时区甚至日历系统。



 类似资料:
  • 我想以毫秒为单位获取当前的UTC时间。我搜索了一下google,得到了System.currentTimeMillis()确实返回UTC时间的一些答案。但事实并非如此。如果我做了以下事情: 所有三个时间几乎相同(由于通话时间不同,时间相差毫秒)。 这个时间不是UTC时间,而是我的时区时间。如何在android中获取当前UTC时间?

  • 问题内容: 我真的对方法调用的结果感到困惑,因为它返回了IST时间。 这是我使用的代码 我得到的答复是: 所以我尝试将默认的TimeZone更改为UTC,然后检查了一下,然后工作正常 结果: 我在这里想念什么吗? 问题答案: 该调用返回的。正是它将转换为的字符串,并且这种转换将使用您所用的默认时区。 您需要明确使用来在所需的时区中打印。 编辑:@Laurynas的礼貌,请考虑以下事项:

  • 我从Ruby on Rails webservice以Unix时间戳格式获取当前时间(即1970年1月1日起的秒),服务器上的时区是UTC。 在Java中,我试图将本地当前时间转换为UTC时间。但每次都是提前6分钟。我想得到UTC当前时间和服务返回时间的差值。我的Java代码是- 其中服务器时间是我从网络服务获得的时间。resTime 的值显示负值,约为 6 分钟。 所以我的问题是为什么UTC时区

  • 问题内容: 我只想检查是否返回UTC / GMT时间戳,还是需要使用? 问题答案: 返回UNIX时间戳,该时间戳与时区无关。由于UNIX时间戳表示自1970年 UTC 以来的秒数,您可以说它是UTC,但实际上没有时区。 实际上,UNIX时间戳在任何给定时间在全世界范围内都是相同的值。在撰写本文时,它在东京,伦敦和纽约。要将其转换为“人类可读”的时间,您需要指定要显示的时区。在东京是,在伦敦是在纽约

  • Python时间模块中的是否返回系统的时间或UTC时间?

  • 我需要在UTC时间生成一个UNIX时间戳,所以我使用来生成它。 我是否需要执行其他操作,或者时间戳是否自动采用 UTC?