Formateador de desfases GMT en texto claro
El formateador de etiquetas de desfase GMT convierte un único desfase firmado, expresado en minutos enteros, en texto claro en español, sin consultar el reloj, la ubicación, una base de zonas horarias ni reglas de horario estacional.
Ejecutar — gratis
Si proporciona 120, obtiene una etiqueta estable equivalente a GMT más dos. Los desfases con fracciones de hora conservan los minutos, los valores negativos emplean menos y cero se presenta como GMT. El resultado sirve para interfaces, informes, textos accesibles, mensajes generados y procesos que requieren una redacción previsible a partir de un valor numérico.
Empiece con un desfase firmado en minutos
Indique la diferencia respecto de GMT como un único número entero de minutos. Los números positivos representan horas adelantadas a GMT, los negativos representan horas atrasadas y cero corresponde al propio GMT. Por ejemplo, 120 significa dos horas por delante, mientras que -240 significa cuatro horas por detrás. El uso de minutos elimina ambigüedades y admite desfases que no coinciden con una hora completa. El intervalo aceptado va de -840 a 840 minutos, es decir, desde catorce horas por detrás hasta catorce horas por delante. El formateador no deduce el desfase a partir de una ciudad, un país, una abreviatura, una marca temporal ni la configuración del dispositivo. Esta separación es deliberada: las zonas horarias geográficas pueden variar por cambios legales y horarios estacionales, mientras que esta capacidad solo expresa el valor numérico exacto que usted entrega. Calcule o valide antes las reglas de hora local y pase después el valor final firmado. Como la entrada es explícita, un mismo valor siempre genera la misma etiqueta en cualquier entorno.
Comprenda cómo se construye la etiqueta
El valor cero produce la etiqueta concisa GMT. Para cualquier otro valor, el formateador determina primero más o menos a partir del signo y luego divide la duración absoluta en horas completas y minutos restantes. Un valor de horas completas omite la palabra horas para conservar un resultado compacto: 120 se expresa como GMT más dos y -60 como GMT menos uno. Cuando quedan minutos, las unidades aclaran la estructura: 330 se convierte en GMT más cinco horas treinta minutos, mientras que 30 se convierte en GMT más treinta minutos. Se emplea el singular cuando corresponde exactamente a una hora o un minuto, y los números compuestos se escriben con naturalidad. El objeto devuelto incluye tanto la etiqueta legible como el desfase original en offset_minutes. Conservar el número junto al texto permite mostrar la etiqueta y, al mismo tiempo, ordenar o comparar mediante el valor, sin volver a interpretar la prosa. Ninguna localización, consulta de abreviaturas ni configuración oculta modifica este procedimiento.
Use etiquetas deterministas sin afirmar una zona horaria
Los desfases GMT y las zonas horarias con nombre están relacionados, pero no son equivalentes. Un desfase solo indica cuánto se separa un reloj de GMT; no identifica una región ni garantiza cuándo se aplican cambios estacionales. Utilice este formateador cuando su fuente ya contenga un desfase fijo y su público se beneficie de palabras en lugar de una notación compacta como +05:30. Resulta apropiado para etiquetas accesibles junto a selectores, resúmenes hablados, registros de auditoría, vistas previas de configuración y respuestas normalizadas de API. No emplee el resultado para afirmar que una persona se encuentra actualmente en una zona concreta ni como cálculo de horario estacional. El algoritmo no realiza solicitudes de red ni lee el reloj, la configuración regional, el sistema operativo o una base de zonas horarias. Por ello resulta reproducible en compilaciones, pruebas, documentos almacenados y ejecución en el navegador. La automatización mediante API cuesta $0.002 por solicitud. Si la entrada falta, es fraccionaria, no numérica o excede el intervalo documentado, se devuelve un error tipado en vez de adivinar o redondear.
Qué puede hacer con ella
Etiquetar un selector de desfases
Convierta valores guardados en minutos en opciones legibles para una pantalla de configuración sin mantener una tabla de etiquetas aparte.
Crear metadatos horarios accesibles
Ofrezca a lectores de pantalla o salidas habladas una descripción clara del desfase, sin depender de una notación numérica cargada de signos.
Normalizar informes y exportaciones
Genere etiquetas GMT estables a partir de valores numéricos de configuración para que las exportaciones repetidas usen exactamente la misma redacción.
Preguntas frecuentes
¿Calcula el desfase de una ciudad o zona horaria?
No. Solo da formato al valor firmado en minutos que usted proporciona y no consulta datos geográficos ni de horario estacional.
¿Qué devuelve una entrada igual a cero?
Cero devuelve GMT, sin más, menos, horas ni minutos.
¿Admite desfases de media hora y de un cuarto de hora?
Sí. Cualquier valor de minutos enteros dentro del intervalo admitido puede conservar su componente de minutos en la etiqueta.
¿Redondea los minutos fraccionarios?
No. Los valores fraccionarios se rechazan porque redondearlos alteraría el desfase proporcionado.
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. El formateador puro también puede ejecutarse directamente en el navegador.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/date/gmt-offset-label \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"minutes":330}'const res = await fetch("https://api.kit.forhosting.com/date/gmt-offset-label", {
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/gmt-offset-label",
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/gmt-offset-label", 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/gmt-offset-label", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"minutes": 330
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.gmt_offset_label",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |