2017-10-21 21 views
0

Y at-il un moyen d'obtenir l'heure actuelle à partir d'un Website?Obtenez l'heure actuelle du site Web

J'ai créé une application. Je veux avoir l'heure actuelle. Si l'utilisateur change l'heure de l'appareil et que l'heure n'est pas égale au site Web, ne laissez pas l'utilisateur utiliser l'application. Je ne comprends pas comment obtenir l'heure actuelle. J'ai juste besoin d'aide pour connaître l'heure actuelle du monde.

Répondre

1

Si vous avez juste besoin de sortir un horodatage au format AAAA.MM.JJ-HH.MM.SS (de cas très fréquent), puis est ici la façon de le faire:

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

i doesn ne pas dire que pour obtenir le temps à partir de l'appareil :( – Fodis

0

Si vous avez besoin API Web qui vous donne le temps réel que vous pouvez utiliser timezonedb:

vous pouvez obtenir l'heure actuelle pour tout fuseau horaire

Demande

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

Réponse

{ 
    "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" 
} 

Mise à jour: Exemple Android

API Key est une valeur donnée pour vous à partir du serveur API lorsque vous (gratuit) register to the website

j'ai écrit un exemple pour obtenir le Les données.

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; 
} 

Aussi, créez le modèle pour la réponse

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; 
} 

Et ajouter bibliothèque Gson au build.gradle de votre application

dependencies { 
    .. 

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

Puis-je utiliser ma base de données firebase pour ce faire? – Fodis

+0

base de données firebase n'est pas liée à cela.Dans votre application, lorsque vous avez besoin de temps de serveur, vous venez de faire un appel HTTP GET à l'URL ci-dessus et vous obtenez le temps. –

+0

qu'est-ce que la clé API? – Fodis

0

facile, l'ajout d'une page php sur le site Web. Je peux poster du code plus tard, quand je rentrerai à la maison.

AJOUTÉE:

Il suffit de créer ce fichier gettime.php dans le serveur Web:

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

Et faire http://www.mywebsite.com/gettime.php vous obtiendrez une chaîne avec le temps du serveur web UTC