从网站获取当前时间

时间:2017-10-21 07:58:14

标签: java android

有没有办法从Website获取当前时间?

我创建了一个应用程序。我想获得当前时间。如果用户更改设备的时间且时间不等于网站,则不允许用户使用该应用。我不明白如何获得当前时间。我只是需要帮助才能获得当前的世界时间。

3 个答案:

答案 0 :(得分:1)

如果您只需要输出YYYY.MM.DD-HH.MM.SS格式的时间戳(非常频繁的情况),那么这就是这样做的方法:

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());

答案 1 :(得分:0)

如果您需要一个可以使用timezonedb的实际时间的Web API:

您可以获取任何时区的当前时间

请求

http://api.timezonedb.com/v2/get-time-zone?key=YOUR_API_KEY&format=json&by=zone&zone=America/Chicago

响应

{
    "status":"OK",
    "message":"",
    "countryCode":"US",
    "countryName":"United States",
    "zoneName":"America\/Chicago",
    "abbreviation":"CST",
    "gmtOffset":-21600,
    "dst":"0",
    "dstStart":1446361200,
    "dstEnd":1457856000,
    "nextAbbreviation":"CDT",
    "timestamp":1454446991,
    "formatted":"2016-02-02 21:03:11"
}

更新:Android示例

API Key是您(免费)register to the website

时从API服务器获得的值

我写了一个获取数据的例子。

private Response getServerTime(){
        HttpURLConnection urlConnection = null;
        try {
            URL url = new URL("http://api.timezonedb.com/v2/get-time-zone?key=YOUR_API_KEY&format=json&by=zone&zone=America/Chicago");
            urlConnection = (HttpURLConnection) url.openConnection();
            InputStream stream = new BufferedInputStream(urlConnection.getInputStream());
            BufferedReader in = new BufferedReader(new InputStreamReader(stream));
            StringBuilder sb = new StringBuilder();
            String s;
            while ((s = in.readLine()) != null)
                sb.append(s);

        String json = sb.toString();

        Response response = new GsonBuilder().create().fromJson(in, Response.class);
        return response;
    } catch(Exception e) {
        e.printStackTrace();
    }
    finally {
        if(urlConnection != null)
            urlConnection.disconnect();
    }
    return null;
}

另外,为响应创建模型

public class Response {
    public String status;
    public String message;
    public String countryCode;
    public String countryName;
    public String zoneName;
    public String abbreviation;
    public int gmtOffset;
    public String dst;
    public int dstStart;
    public int dstEnd;
    public String nextAbbreviation;
    public int timestamp;
    public String formatted;
}

将Gson库添加到您应用的build.gradle

dependencies {
    ..

    compile 'com.google.code.gson:gson:2.8.2'
}

答案 2 :(得分:0)

很简单,在网站上添加了一个php页面。我回家后可以发布一些代码。

<强>增加:

只需在Web服务器中创建此gettime.php文件:

<?php
date_default_timezone_set('UTC');
$currentdatetime = date('Y-m-d H:i:s');
print ($currentdatetime);
?>

执行http://www.mywebsite.com/gettime.php,您将获得一个包含UTC网络服务器时间的字符串