如何获取设备独立的本地日期和时间Android

Posted

技术标签:

【中文标题】如何获取设备独立的本地日期和时间Android【英文标题】:How to get device independent local date and time Android 【发布时间】:2014-08-13 09:46:59 【问题描述】:

我的应用程序是时间相关的,我不希望设备日期和时间的更改影响我的应用程序,例如如果用户故意将设备日期设置为任何以前的日期。当用户连接到移动网络或 WiFi 我不想使用 GPS 时,有什么方法可以获取当前日期和时间。

【问题讨论】:

是的,有可能,这里是答案***.com/questions/23958640/… 【参考方案1】:

SystemClock 类的 Javadoc 描述了针对各种场景和条件计算经过时间的不同方法。

在你的情况下,你必须使用

long time = SystemClock.elapsedRealtime();

返回系统启动后的时间,包括深度睡眠。 这个时钟保证是单调的,甚至会继续滴答作响 当 CPU 处于省电模式时,推荐的依据是 通用间隔计时。

当您想开始跟踪 Network 的使用时第一次调用它(我假设您已经知道如何做)并存储该值。

当你收到关于用户不再使用网络的事件时,再次调用相同的方法并计算花费的时间。

long elapsed = time - SystemClock.elapsedRealtime();

接下来您可以将毫秒转换为字符串,例如:

String formattedElapsedTime = DateUtils.formatElapsedTime(elapsed/1000);//note that this method takes second as arguments so we have to divide it by 1000

【讨论】:

【参考方案2】:

您应该调用 webservice 并获取服务器的当前日期和时间。然后服务器将负责实际的日期/时间。最好的方法是构建自己的 Web 服务,因为它比使用第三方提供更多的控制权。

【讨论】:

以上是关于如何获取设备独立的本地日期和时间Android的主要内容,如果未能解决你的问题,请参考以下文章

Android获取本地日期类型的短名称

Android:从firebase获取当前日期和时间

如何在文件系统中获取最后修改的日期和时间?

如何在Filesystem中获取最后修改日期和时间?

在离线模式下获取当前日期

如何在 Kotlin 中获取当前的本地日期和时间