如何获取真实的UTC时间戳,而不考虑设备时间(不是时区)

How to get the real UTC Timestamp regardless the device Time (not Timezone)

提问人:Dudli Hamsterson 提问时间:11/10/2015 最后编辑:Dudli Hamsterson 更新时间:2/16/2022 访问量:4200

问:

在Android中,有没有办法获取当前时间戳,而不管设备设置中设置的时间如何?

我对超出时区的时间偏移没有问题。我的问题是,如果我在设备设置中设置了错误的时间,我从系统获得的时间戳是基于这个错误的时间。

当前 UTC 时间戳是 is 和 local(我的时区是 +1:00)144716487310.11.2015 14:14:3315:14:33

如果我打电话,我就得到正确的System.currentTimeMillis() /1000Timestamp = 1447164873;

如果我转到“设备设置”并将设备的时间设置为“未来一小时”(16:14:33),则返回错误的本地时间。System.currentTimeMillis()/1000Timestamp = 144716847315:14:3316:14:33

无论我的设备上设置的时间如何,是否有可能获得真正的UTC时间戳?

Android DateTime 时间戳 设备

评论

2赞 Jfreu 11/10/2015
如何在 Java 中获取 UTC 或 GMT 的当前日期和时间的可能副本?
1赞 Jfreu 11/10/2015
明白了。。。如果您在设备中设置的时间错误,则无法获得真正的 UTC 时间戳。

答:

0赞 Saitejareddy 2/16/2022 #1

如果设备时间设置错误,则无法获取正确的时间戳。

但解决这个问题的方法是创建一个 API,在后端提供当前时间戳或一个简单的 lambda 函数。

并在需要时使用它,这里应该考虑 API 往返时间以获得准确的时间戳
或 只需在应用程序上点击 API 一次,打开并启动您自己的计数器来计算时间戳。

我在我的一个物联网项目中使用了这种方法来获取微控制器中的时间戳。