Free Rest API para obter o horário atual como string (fuso horário irrelevante)

Eu mesmo poderia configurar isso, mas a funcionalidade é tão simples que parece que alguém provavelmente já fez isso melhor e mais rápido do que eu poderia com o meu aplicativo Rails.

Eu preciso da hora atual como uma string. Eu gostaria que retornasse em menos de um segundo, onde quer que meu visitante esteja no mundo. (Estou fazendo um cronômetro de contagem regressiva, e ele precisa ser mais preciso do que a hora do computador possivelmente desligada do usuário.) Pode ser o horário do GMT. Não importa, desde que diga o fuso horário (como “2012-11-05 16:16:50 EST”).

(Eu poderia construir isso sozinho, é claro. É uma API simples. Mas meus servidores estão na costa leste dos EUA, e eu estou trabalhando dentro de uma pilha inteira do Rails. Filtrando alguém através de uma grande pilha de software como Rails apenas para return uma string parece deselegante, e estou preocupado com a latência de visitantes longe da costa leste dos EUA.)

TimezoneDb fornece uma API gratuita: http://timezonedb.com/api

O GenoNames também tem uma API RESTful disponível para obter a hora atual de um determinado local: http://www.geonames.org/export/ws-overview.html .

Você pode usar Greenwich, Reino Unido, se quiser GMT.

Essa API fornece o horário atual e vários formatos em JSON – https://www.mashape.com/parsify/format#endpoint-Time . Aqui está uma resposta de amostra:

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

Se você estiver usando o Rails, basta criar um arquivo vazio na pasta pública e usar ajax para obter isso. Em seguida, analise os headers do header da data. Os arquivos na pasta Pública ignoram a pilha do Rails e, portanto, têm menor latência.