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

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

【问题讨论】:

标签: android android-networking android-date


【解决方案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 服务,因为它比使用第三方提供更多的控制权。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多