Diferença de horas entre offsets UTC
Esta calculadora determina a diferença com sinal, em horas, entre duas strings de offset UTC fixo.
Executar grátis
Informe o primeiro e o segundo offset; a ferramenta subtrai o primeiro do segundo sem consultar relógio, local, regra de horário de verão ou banco de dados de fusos horários. O resultado é positivo quando o segundo offset está adiantado, negativo quando está atrasado e zero quando ambos representam o mesmo deslocamento em relação ao UTC. Ela também retorna a diferença exata em minutos para facilitar cálculos posteriores.
Entenda a direção do resultado com sinal
O cálculo segue uma ordem explícita: segundo offset menos primeiro offset. Se o offset A for UTC+02:00 e o B for UTC+05:30, o resultado será +3.5 horas, pois B está três horas e trinta minutos mais a leste do UTC que A. Ao inverter as mesmas entradas, o resultado será -3.5 horas. Esse sinal é útil quando um programa precisa ajustar um horário de relógio do primeiro offset para o segundo, mas esta capacidade não recebe nem transforma data ou hora. Ela informa somente a diferença entre offsets. Um resultado zero significa que as duas strings descrevem o mesmo deslocamento UTC, mesmo que uma use UTC e a outra Z. A resposta inclui versões normalizadas das entradas, um valor decimal em horas e um valor inteiro em minutos. Os minutos evitam ambiguidades quando há meia hora, quinze minutos ou outro componente válido, enquanto o valor em horas fornece a resposta direta normalmente procurada.
Informe offsets UTC fixos em formato preciso
Use UTC seguido de sinal, dois dígitos de hora, dois-pontos e dois dígitos de minuto, como UTC+05:30 ou UTC-04:00. Você também pode omitir o prefixo UTC e enviar +05:30 ou -04:00. Para zero, UTC e Z são aceitos. Espaços ao redor da string inteira são ignorados, mas espaços internos são rejeitados para que entradas incorretas não sejam reinterpretadas silenciosamente. As horas devem ficar no intervalo civil de offsets fixos, de menos catorze a mais catorze horas. Nos limites de catorze horas, os minutos precisam ser 00; nos demais casos, devem ficar entre 00 e 59. Exigir sinal e dois-pontos explícitos facilita a revisão e impede confundir +530 com +05:30. Os offsets retornados são normalizados como UTC±HH:MM, portanto formas equivalentes geram uma saída consistente. Valores inválidos produzem um erro de entrada que identifica qual campo deve ser corrigido, sem tentar adivinhar a intenção.
Saiba o que offsets fixos podem informar
Um offset UTC fixo é um deslocamento numérico, não um fuso horário geográfico. Essa distinção importa porque locais podem mudar de offset devido ao horário de verão, a decisões governamentais ou a regras históricas. Uma cidade pode usar um offset no inverno e outro no verão, enquanto uma string de offset não contém local nem data para escolher a regra aplicável. Por isso, esta capacidade não consulta fusos horários e não afirma qual é a hora local atual em um lugar nomeado. Esse escopo restrito torna a resposta determinística: strings idênticas sempre geram a mesma saída, independentemente de quando ou onde a solicitação seja executada. Use-a para validar configurações, comparar offsets escolhidos por outro sistema, preparar cálculos de agenda quando os offsets já são conhecidos ou testar integrações que trocam valores numéricos. Se o problema começar com zonas como Europe/London ou America/New_York, resolva-as para o instante relevante e depois envie os offsets fixos resultantes.
Casos de uso
Comparar offsets de serviços configurados
Confirme a diferença horária com sinal entre dois sistemas cujos offsets UTC fixos já são conhecidos.
Verificar cálculos de agenda
Obtenha o ajuste necessário ao mover um horário de relógio do primeiro offset para o segundo.
Testar integrações de offset
Use offsets normalizados e minutos exatos como dados estáveis para API, formulários e pipelines.
Perguntas frequentes
Como o sinal é definido?
A calculadora subtrai offset_a de offset_b. Um resultado positivo indica que o segundo está adiantado; um negativo, que está atrasado.
O cálculo considera o horário de verão?
Não. Ele compara apenas offsets numéricos fixos e não utiliza datas, locais nem regras de fusos horários.
Quais formatos de entrada são aceitos?
Use UTC±HH:MM ou ±HH:MM. UTC e Z também são aceitos para offset zero.
Offsets de meia hora e quinze minutos são aceitos?
Sim. Qualquer componente válido de minutos entre 00 e 59 é aceito dentro do intervalo total de ±14:00.
Por que difference_minutes é retornado?
Minutos inteiros preservam o cálculo exato e facilitam operações posteriores quando a diferença em horas é fracionária.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002; a versão do navegador pode ser executada localmente sem consultar serviços externos.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/date/offset-difference-hours \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"offset_a":"UTC+05:30","offset_b":"UTC-04:00"}'const res = await fetch("https://api.kit.forhosting.com/date/offset-difference-hours", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"offset_a": "UTC+05:30",
"offset_b": "UTC-04:00"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/offset-difference-hours",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"offset_a": "UTC+05:30",
"offset_b": "UTC-04:00"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/offset-difference-hours", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"offset_a":"UTC+05:30","offset_b":"UTC-04:00"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"offset_a":"UTC+05:30","offset_b":"UTC-04:00"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/offset-difference-hours", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"offset_a": "UTC+05:30",
"offset_b": "UTC-04:00"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.offset_difference_hours",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |