web-dev-qa-db-fra.com

API Reste libre pour récupérer la date / heure actuelle en tant que chaîne (le fuseau horaire n'est pas pertinent)

Je recherche une API REST fiable capable de fournir des informations sur le fuseau horaire et le monde entier entre plates-formes .

J'ai besoin de l'heure actuelle en tant que chaîne. J'aimerais que renvoie le résultat en moins d'une seconde , quelle que soit la localisation de l'utilisateur dans le monde.

Parmi d'autres implémentations, je souhaite utiliser ceci pour un compte à rebours cohérent, afin d'être plus précis que l'heure d'un utilisateur (peut-être inexacte). Il peut s'agir de l'heure GMT ou d'un autre fuseau horaire, à condition que le fuseau horaire et le décalage soient spécifiés, comme 2012-11-05 16:16:50 EST.

Je construirais cette API moi-même, mais je craignais pour des problèmes de latence potentiels (ainsi que pour inélégance) lors du filtrage d'une personne par le biais d'une pile logicielle volumineuse telle que Rails juste pour retourner un simple String.

Une latence excessive pour les utilisateurs éloignés de la côte est des États-Unis compenserait l'avantage de la précision requise par la tâche.

Toutes les suggestions et/ou exemples sont appréciés.

38
chadoh

Si vous utilisez Rails, vous pouvez créer un fichier vide dans le dossier public et utiliser ajax pour l'obtenir. Puis analyser les en-têtes pour l'en-tête Date. Les fichiers du dossier Public contournent la pile Rails) et ont donc une latence plus faible.

5
chadoh

TimezoneDb fournit une API gratuite: http://timezonedb.com/api

GenoNames dispose également d’une API RESTful permettant d’obtenir l’heure actuelle pour un emplacement donné: http://www.geonames.org/export/ws-overview.html .

Vous pouvez utiliser Greenwich, Royaume-Uni si vous souhaitez GMT.

17
Aamir

Cette API vous donne l'heure actuelle et plusieurs formats au format JSON - https://market.mashape.com/parsify/format#time . Voici un exemple de réponse:

{
  "time": {
    "daysInMonth": 31,
    "millisecond": 283,
    "second": 42,
    "minute": 55,
    "hour": 1,
    "date": 6,
    "day": 3,
    "week": 10,
    "month": 2,
    "year": 2013,
    "zone": "+0000"
  },
  "formatted": {
    "weekday": "Wednesday",
    "month": "March",
    "ago": "a few seconds",
    "calendar": "Today at 1:55 AM",
    "generic": "2013-03-06T01:55:42+00:00",
    "time": "1:55 AM",
    "short": "03/06/2013",
    "slim": "3/6/2013",
    "hand": "Mar 6 2013",
    "handTime": "Mar 6 2013 1:55 AM",
    "longhand": "March 6 2013",
    "longhandTime": "March 6 2013 1:55 AM",
    "full": "Wednesday, March 6 2013 1:55 AM",
    "fullSlim": "Wed, Mar 6 2013 1:55 AM"
  },
  "array": [
    2013,
    2,
    6,
    1,
    55,
    42,
    283
  ],
  "offset": 1362534942283,
  "unix": 1362534942,
  "utc": "2013-03-06T01:55:42.283Z",
  "valid": true,
  "integer": false,
  "zone": 0
}
10
Chris Ismael