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

时间:2014-08-13 09:46:59

标签: android android-networking android-date

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

2 个答案:

答案 0 :(得分:2)

SystemClock类的Javadoc描述了计算各种场景和条件所用时间的不同方法。

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

long time = SystemClock.elapsedRealtime();
  

返回自系统启动以来的时间,并包括深度睡眠。   这个时钟保证是单调的,并且继续打勾   当CPU处于省电模式时,建议的基础也是如此   通用间隔时间。

当您想要开始跟踪网络的使用时(我假设您已经知道如何操作)并存储该值,这是第一次调用它。

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

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

答案 1 :(得分:0)

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