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

8

在Android中,是否有一种方式可以获取当前时间戳而不受设备设置中的时间影响?

我并不关心超出时区的时间偏移。我的问题是,如果我在设备设置中设置了错误的时间,那么从系统获取的时间戳将基于此错误的时间。

当前UTC时间戳为1447164873,即2015年11月10日14:14:3315:14:33本地时间(我的时区为+1:00)

如果我调用System.currentTimeMillis()/1000,我会得到正确的Timestamp = 1447164873;

如果我去设备设置并将设备的时间向未来推迟一个小时(16:14:33),System.currentTimeMillis()/1000返回错误的Timestamp = 1447168473,即15:14:3316:14:33本地时间。

是否有可能获取真正的UTC时间戳而不受设备上设置的时间影响?


1
我明白了...如果设备的时间设置错误,你将无法获取真正的UTC时间戳。 - Jfreu
1个回答

0

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

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

每当需要时使用它,这里应考虑API往返时间以获取准确的时间戳。
或者 只需在应用程序打开时调用API一次,并启动自己的计数器来计算时间戳。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接