Minutos para fuso UTC
O formatador de minutos para fuso UTC transforma um valor inteiro com sinal em uma string numérica estável, como UTC+05:30 ou UTC-04:00.
Executar grátis
Ele utiliza somente o valor que você envia; portanto, o resultado nunca depende da data atual, do relógio do dispositivo, do idioma do navegador, da localização geográfica, das regras de horário de verão nem de um banco de dados de fusos horários. A saída sempre inclui o prefixo UTC, um sinal explícito, dois dígitos de hora, dois-pontos e dois dígitos de minuto, sendo adequada para telas de configuração, registros normalizados, testes, logs e intercâmbio de dados.
Informe o fuso em minutos inteiros com sinal
Forneça um único inteiro chamado minutes. Valores positivos representam horários adiantados em relação a UTC, valores negativos representam horários atrasados e zero indica ausência de diferença. Por exemplo, 330 descreve cinco horas e trinta minutos adiantados, enquanto -240 descreve quatro horas atrasadas. Usar minutos na entrada elimina a ambiguidade das horas decimais: 5.5 horas pode ser compreensível para uma pessoa, mas 330 minutos é exato e dispensa interpretação de ponto flutuante. O intervalo aceito vai de -840 a 840, correspondendo a UTC-14:00 e UTC+14:00 e abrangendo o limite prático dos fusos UTC civis. O formatador rejeita frações, strings numéricas, valores ausentes, números não finitos e valores fora desse intervalo, sem arredondar ou converter silenciosamente. Essa validação rigorosa protege configurações e agendamentos contra mudanças sutis no fuso pretendido por você. Calcule ou obtenha o valor correto antes da chamada; a capacidade não o deduz de cidade, país, abreviação, nome de zona, instante ou configuração do dispositivo. Assim, entradas inteiras iguais percorrem sempre a mesma formatação.
Entenda o resultado canônico UTC±HH:MM
O algoritmo escolhe o sinal diretamente da entrada, usa sua magnitude absoluta, separa horas inteiras e minutos restantes e completa ambos os componentes com dois dígitos. A entrada 330 vira UTC+05:30, -75 vira UTC-01:15 e 60 vira UTC+01:00. O zero é representado como UTC+00:00 para manter a mesma estrutura fixa de todos os resultados; não há abreviação especial Z nem rótulo UTC reduzido. Os dois-pontos estão sempre presentes, e nenhum componente é omitido quando vale zero. Esse formato estável atende bem a interfaces, snapshots de teste, configurações exportadas, documentação gerada e sistemas que comparam strings normalizadas. A resposta também devolve offset_minutes, preservando a entrada numérica validada ao lado do fuso formatado. Você pode exibir a string e manter o inteiro para ordenação, cálculos ou armazenamento, sem precisar interpretar o texto novamente. Aqui, a palavra canônico descreve o formato documentado desta capacidade: UTC em maiúsculas, sinal de mais ou menos explícito e HH:MM preenchido com zeros. Ela não indica que o resultado identifica uma zona geográfica.
Separe fusos fixos de zonas nomeadas
Um fuso UTC numérico não equivale a uma zona nomeada, como Europe/London ou America/New_York. Zonas nomeadas incluem regras históricas e futuras, e seu fuso ativo pode mudar conforme o horário de verão ou a legislação. Este formatador não faz essa consulta: ele apenas representa o número exato fornecido por você. Use-o quando um fuso fixo já for o dado correto, ao normalizar um valor calculado em outro lugar ou ao criar dados de teste determinísticos que não possam mudar com novas versões dos bancos de fusos. Não o use para descobrir a hora local de uma pessoa, decidir qual fuso vale para uma cidade em determinada data nem converter uma zona nomeada em valor sazonal. Não existem requisição de rede, valor aleatório, leitura do relógio, dependência regional, inspeção do ambiente ou padrão oculto. Por isso, o resultado é reproduzível na API e no navegador. Cada solicitação de API custa US$ 0,002. Entradas inválidas retornam um erro tipado com explicação objetiva, permitindo que você corrija o campo em vez de aceitar uma suposição. Para uso posterior confiável, mantenha offset_minutes como fonte numérica e offset como apresentação normalizada.
Casos de uso
Normalizar valores de configuração
Converta fusos armazenados em minutos para uma forma UTC±HH:MM única em ajustes, API e exportações.
Criar rótulos de seleção de fuso
Gere rótulos numéricos consistentes para uma interface sem manter uma tabela manual de correspondências.
Montar dados de teste determinísticos
Produza strings esperadas a partir de inteiros sem depender de relógios, idiomas ou versões de bancos de fusos.
Perguntas frequentes
O que zero minuto retorna?
O valor zero retorna UTC+00:00, mantendo o sinal explícito e a largura fixa dos demais resultados.
Minutos fracionários são arredondados?
Não. Os minutos precisam ser inteiros, e uma fração retorna um erro de entrada inválida.
A ferramenta encontra o fuso atual de uma cidade?
Não. Ela formata somente o valor com sinal informado e não consulta geografia nem horário de verão.
Por que horas e minutos sempre têm dois dígitos?
O preenchimento com zeros cria uma representação UTC±HH:MM previsível para telas, registros e testes.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002; o mesmo solucionador determinístico também funciona no navegador.
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/minutes-to-offset \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"minutes":330}'const res = await fetch("https://api.kit.forhosting.com/date/minutes-to-offset", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"minutes": 330
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/minutes-to-offset",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"minutes": 330
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/minutes-to-offset", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"minutes":330}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"minutes":330}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/minutes-to-offset", 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
{
"minutes": 330
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.minutes_to_offset",
"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. |