为了账号安全,请及时绑定邮箱和手机立即绑定

如何在android中获得准确的UTC时间戳

如何在android中获得准确的UTC时间戳

手掌心 2023-04-26 13:52:41
我不知道哪个适合获取 UTC 时间我的代码是System.currentTimeMillis()对于 java 安卓国际的结果正确吗?也许用户可以更改设备时间并且结果会有所不同?(它会影响 UTC 吗?)
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

在 Linux 平台上,系统时钟应设置为 UTC。它是否确实如此,是否准确,最终取决于用户。

调用System.currentTimeMillis() 将给出 UTC 时间,因为1970-01-01T00:00:00Z

国际的结果正确吗?

是的。只要时钟与合适的网络时间源同步并且用户没有弄乱它。

也许用户可以更改设备时间并且结果会有所不同?

是的他们可以。你对此无能为力。

您可以尝试连接到网络时间服务器,但用户可能会阻止它,或者导致您的游戏连接到虚假时间服务器。如果他们“拥有”您的游戏运行的平台,您可能无法获得有保证的可靠时间。

查看完整回答
反对 回复 2023-04-26
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

关于获取正确的“本地”或“国际”时间存在一个常见的误解。时间本身并不知道这些概念,我会在这里尝试给出解释,因为其他人还在搜索它。

请注意,假设机器时钟在计时时是准确的,并且启动时的初始时间设置也是正确的,则以下内容适用。另请注意,大多数连接的设备会不时将此内部时钟与网络源同步,以使其准确运行。

时间本身是我们无法控制的,它一瞬间流逝。但是时间表示(秒、小时、天、年、十年)是人类创造的概念,只是为了更清楚地了解时间的流逝。你可以想象如果我们在片刻讨论时间会造成混乱—— “嘿,我将在 901400203150 片刻去商店,你愿意加入吗?” .

反正时区也是一样,是人为的概念。我们生活在地球上,靠近太阳和月亮,太空中发生了一些旋转,使我们认识到较长的时间段称为“年”,较短的时间段称为“月”。我们还认识到,早晨在某些地方来得早,而在其他地方来得晚 - 因此,我们引入了时间计算和时区,让地球上的每个人都能更轻松地跟踪时间。但是在一万年前,没有人知道时区,但时间却在流逝。

因此,考虑到这一点来回答最初的问题:是的,如果您有兴趣获得绝对当前时间,该方法将起作用

如前所述,没有“国际”或“本地”时间之分,每个人的时间都是一样的。我们在提及转换为并以特定时区格式呈现的时间值时使用这些术语。今天我们有一个叫做 Epoch 的东西(对于人类:00:00:00 UTC on 1 January 1970,对于大多数机器: )——所以获取“自 Epoch 以来的毫秒数”将为您提供自 Epoch 以来经过的原始时间0量,以毫秒表示。

时间本身不知道时区或年份或月份,这是一个你必须自己转换的人类构造。基本上,您从操作系统获得的是原始时间,然后将其转换为所需的时区、所需的格式和语言,以方便用户阅读。以及如何转换时间 - 这是一个完全不同的问题。:)


查看完整回答
反对 回复 2023-04-26
  • 2 回答
  • 0 关注
  • 256 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信