Convertir fecha a ticks .NET
El 29 de febrero de 2024 a las 12:34:56.1234567 con desfase +02:30 equivale a 638447978961234567 ticks, contados en UTC. Indique fecha, hora y desfase y obtendrá los ticks exactos de .NET y el instante UTC que representan. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha y hora
- 2024-02-29T12:34:56.1234567+02:30
- Fecha y hora UTC
- 2024-02-29T10:04:56.1234567Z
- Ticks de .NET
- 638447978961234567
- Unidad de ticks
- 100 nanoseconds
Convierta una fecha y hora ISO 8601 completa en el número exacto de ticks que utilizan los valores DateTime de . NET. El conversor exige un indicador UTC o un desfase numérico explícito, valida la fecha y la hora gregorianas, conserva fracciones de hasta cien nanosegundos y realiza todos los cálculos en UTC.
Indique una fecha ISO inequívoca
Introduzca una fecha y hora del calendario gregoriano con el formato YYYY-MM-DDTHH:mm:ssZ, o sustituya Z por un desfase numérico como +02:30 o -05:00. Los segundos son obligatorios porque una conversión a ticks de . NET representa un instante preciso, no una fecha aproximada.
Puede añadir de uno a siete dígitos después del punto decimal. Siete dígitos corresponden exactamente a la resolución de cien nanosegundos de un tick DateTime; las fracciones más cortas se completan con ceros a la derecha, por lo que .5 significa cinco décimas de segundo y no cinco ticks. La zona horaria es obligatoria.
Este requisito impide que un mismo texto produzca resultados distintos en equipos configurados con zonas locales diferentes. El conversor rechaza fechas imposibles, segundos intercalares, la hora 24, desfases fuera del intervalo ISO e instantes que, una vez normalizados a UTC, queden fuera de los años 0001 a 9999. Este contrato estricto resulta apropiado para migraciones, datos de prueba, comprobaciones de bases de datos y diagnóstico de protocolos.
Use Z mayúscula y el separador literal T para representar el instante de forma compacta y verificable.
Comprenda cómo se calcula el valor en ticks
Un tick DateTime de . NET es un intervalo de cien nanosegundos desde 0001-01-01T00:00:00 en el calendario gregoriano proléptico. El cálculo valida primero año, mes, día, hora, minuto y segundo.
Después cuenta los días completos anteriores al año indicado, incluidas las reglas gregorianas de años bisiestos, suma los días completos del año actual y convierte la hora del día en segundos. El desfase numérico indicado se resta para obtener UTC antes de formar el número de ticks. Por último, los segundos se multiplican por diez millones y se añade el componente fraccionario de siete dígitos.
No intervienen el reloj del sistema, la zona horaria del equipo, una solicitud de red, un valor aleatorio ni el analizador Date incorporado. Por ello, el resultado es idéntico en un worker del servidor y en un navegador situado en cualquier zona horaria.
Use el resultado UTC normalizado para verificar integraciones
El campo UTC normalizado sirve como evidencia: antes de aceptar el entero, puede confirmar que el desfase indicado ha desplazado la hora y, cuando corresponde, la fecha del calendario en la dirección prevista. En C#, el valor numérico corresponde a los ticks de la hora de reloj UTC normalizada, con época en el año uno; no incluye los indicadores binarios del tipo DateTime. Tenga presente esta diferencia al examinar valores de DateTime.ToBinary, convenciones de almacenamiento DateTimeOffset o épocas propias de una aplicación.
La pareja facilita el diagnóstico: un campo UTC erróneo apunta al manejo del desfase, mientras que un UTC coincidente con otro entero apunta a la época, la precisión o el redondeo numérico.
Qué puede hacer con ella
Revise registros temporales antiguos
Convierta un instante ISO conocido antes de compararlo con valores en ticks guardados en registros, exportaciones o tablas de aplicaciones antiguas.
Diagnostique errores de desfase y precisión
Compruebe la fecha UTC canónica junto al número de ticks para distinguir errores de zona horaria de problemas de fracciones o redondeo de enteros.
Preguntas frecuentes
¿Qué representa un tick de .NET?
Un tick equivale a cien nanosegundos. En un segundo hay diez millones de ticks.
¿Es obligatoria una zona horaria?
Sí. Use Z o un desfase como +01:00. Las fechas sin zona horaria son ambiguas y se rechazan en lugar de interpretarse según la configuración del equipo.
¿Se admiten siete dígitos fraccionarios?
Sí. El conversor acepta entre uno y siete dígitos fraccionarios y completa las fracciones cortas hasta la precisión de siete dígitos de DateTime.
¿Incluye los indicadores de tipo de DateTime?
No. Devuelve el número de ticks UTC desde el año uno, no los indicadores adicionales de representaciones como DateTime.ToBinary.
¿Qué fechas se pueden convertir?
Cualquier instante cuya hora UTC caiga entre los años 0001 y 9999. Se rechazan las fechas imposibles, los segundos intercalares y la hora 24, igual que los desfases fuera del rango habitual.
Herramientas relacionadas
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/date-to-dotnet-ticks \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2024-02-29T12:34:56.1234567+02:30"}'const res = await fetch("https://api.kit.forhosting.com/date/date-to-dotnet-ticks", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"datetime": "2024-02-29T12:34:56.1234567+02:30"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/date-to-dotnet-ticks",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"datetime": "2024-02-29T12:34:56.1234567+02:30"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/date-to-dotnet-ticks", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"datetime":"2024-02-29T12:34:56.1234567+02:30"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"datetime":"2024-02-29T12:34:56.1234567+02:30"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/date-to-dotnet-ticks", 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
{
"datetime": "2024-02-29T12:34:56.1234567+02:30"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.date_to_dotnet_ticks",
"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. |
Notas técnicas
El resultado se entrega como cadena decimal para que incluso los valores muy grandes permanezcan exactos en JavaScript, JSON, hojas de cálculo, herramientas de línea de comandos y pruebas de integración entre lenguajes.
Comprenda cómo se calcula el valor en ticks
Como casi todos los valores útiles superan el límite de enteros exactos de JavaScript, dotnet_ticks se devuelve deliberadamente como cadena decimal. Trátela como entero en lenguajes con enteros de 64 bits o consérvela como texto al pasarla por sistemas JSON que puedan redondear números grandes.
Use el resultado UTC normalizado para verificar integraciones
La respuesta incluye el datetime original, un utc_datetime canónico con exactamente siete dígitos fraccionarios, la cadena exacta dotnet_ticks y una descripción clara de la unidad del tick. Esto resulta especialmente útil al comparar una carga API con registros de C#, exportaciones SQL, datos de telemetría o archivos antiguos cuyas marcas temporales se serializaron como ticks.
Casos de integración
Prepare datos de prueba entre lenguajes
Genere cadenas de ticks esperadas y exactas para pruebas de integración con JavaScript, C#, bases de datos y API sin depender de la zona horaria del equipo.
Preguntas técnicas
¿Por qué dotnet_ticks se devuelve como cadena?
La mayoría de los valores DateTime superan el intervalo de enteros seguros de JavaScript. Una cadena decimal conserva todos los dígitos en JSON y en el navegador.
¿Cuánto cuesta una solicitud API?
Cada solicitud API cuesta $0.002. La versión del navegador utiliza la misma lógica de conversión determinista.