如何获取设备独立的本地日期和时间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的主要内容,如果未能解决你的问题,请参考以下文章