在Android Studio中查找确切的日期时间

时间:2018-05-29 15:10:21

标签: java android android-studio

我正在创建一个Android应用程序,我需要使用android studio获取完整的日期和时间。有许多问题可以解决这个问题,但我意识到所有问题都给出了手机可以由用户编辑的时间。我需要确切的世界标准时间。

目前,我正在使用的代码是:

DateFormat dfgmt = new java.text.SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
            dfgmt.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
            String nowTime = dfgmt.format(new Date());

但这给了我时间,有时是用户调整的。任何人都有办法获得确切的时间吗?

4 个答案:

答案 0 :(得分:0)

您可以使用外部服务。您可以设置一个简单的REST API或使用其他人(查看这篇文章,其中给出了一个https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/linear_model/cd_fast.pyx的示例)来发出HTTP请求并获得与用户手机上设置的内容无关的时间。

答案 1 :(得分:0)

您可以向远程服务器询问时间。

这将授予您时间不是由用户手动设置的,并且不受时区的影响。

答案 2 :(得分:0)

根据您是否可以访问互联网和/或GPS,以及是否希望此功能脱机工作,您可以遵循几种不同的方法。

  1. 正如其他人所建议的那样,您可以使用在线服务来获取官方时间。例如,TimezoneDB提供了这样的REST API。
  2. 如果您需要离线访问时间,请从 GPS 提供程序中读取时间,该提供程序以UTC格式返回时间。检查Location.getTime()
  3. 使用在线服务的组合来获取一次时间,并将其与SystemClock.elapsedRealtime()结合使用,以获得实际的实时时间,即使设备处于离线状态。

答案 3 :(得分:0)

使用第三方NTP客户端库从NTP服务器获取当前时间。

E.g。 Apache Commons Net有一个类。