【问题标题】:How to get current date and time from server in android app? [closed]如何从android应用程序中的服务器获取当前日期和时间? [关闭]
【发布时间】:2013-12-19 06:00:39
【问题描述】:

我正在开发一个用于学习目的的安卓应用。我需要从我的服务器获取当前日期和时间到我的 android 应用程序并设置限制,以便只能在指定的日期和时间(例如,周一至周三,上午 10:30 至下午 3 点)访问该应用程序特定时区)。而且我不想使用设备日期和时间,因为它可以更改并且可以访问应用程序。

我检查了SntpClient 代码并在我的应用程序中实现了它,但没有成功。

【问题讨论】:

标签: java android date datetime time


【解决方案1】:
  • 在您的服务器上编写一个简单的端点,它只返回一个表示毫秒的 long 值

  • 编写一个简单的 http 客户端从 android 客户端向该端点发出请求,或者在该请求中传递一些令牌以了解正在访问的设备/客户端/用户,或者在此处添加安全通信

  • 在安卓客户端解析StringLongLongDate

【讨论】:

    【解决方案2】:

    在php代码中使用$my_date = date("Y-m-d H:i:s");

    当前日期,此输出在 android 应用程序中解析

    【讨论】:

      【解决方案3】:

      为了帮助您入门……

      在运行 Servlet 容器(例如 Apache Tomcat 或 Eclipse Jetty)的 Web 服务器上创建 Java Servlet。 servlet 不是完整的网页,而是仅返回一个字符串,其中包含 UTC 时区中标准 ISO 8601 格式的日期时间(无时区偏移)。添加 Joda-Time 库以避免使用臭名昭著的 java.util.Date/Calendar。

      servlet 的核心……

      String now = new DateTime( DateTimeZone.UTC ).toString();
      

      在 Android 端使用 HTTP 客户端库调用 servlet。

      客户端代码的核心……

      DateTime start = new DateTime( 2013, 12, 13, 14, 15, 16, DateTimeZone.UTC );
      DateTime stop = start.plusHours( 8 );
      DateTime now = new DateTime( stringReturnedByServlet, DateTimeZone.UTC );
      if ( now.isAfter(start) & now.isBefore(stop) ) {
        // Do your thing
      } else {
        // Refuse to do your thing
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-03
        • 1970-01-01
        • 1970-01-01
        • 2020-07-24
        • 2018-09-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多