Converter data em ticks .NET
29 de fevereiro de 2024 às 12:34:56.1234567 com deslocamento +02:30 equivale a 638447978961234567 ticks, contados em UTC. Informe data, hora e deslocamento e receba os ticks exatos do .NET e o instante UTC correspondente. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Data e hora
- 2024-02-29T12:34:56.1234567+02:30
- Data e hora UTC
- 2024-02-29T10:04:56.1234567Z
- Ticks do .NET
- 638447978961234567
- Unidade de ticks
- 100 nanoseconds
Converta uma data e hora ISO 8601 completa na contagem exata de ticks usada por valores DateTime do . NET. O conversor exige um indicador UTC ou deslocamento numérico explícito, valida a data e a hora gregorianas, preserva frações de até cem nanossegundos e faz todos os cálculos em UTC.
Informe uma data ISO sem ambiguidade
Digite uma data e hora do calendário gregoriano no formato YYYY-MM-DDTHH:mm:ssZ ou substitua Z por um deslocamento numérico, como +02:30 ou -05:00. Os segundos são obrigatórios porque uma conversão para ticks do . NET representa um instante preciso, não uma data aproximada.
Você pode acrescentar de um a sete dígitos após o ponto decimal. Sete dígitos correspondem exatamente à resolução de cem nanossegundos de um tick DateTime; frações menores recebem zeros à direita, portanto .5 significa cinco décimos de segundo, e não cinco ticks. O fuso horário é obrigatório.
Essa exigência impede que o mesmo texto gere respostas diferentes em computadores configurados com fusos locais distintos. O conversor rejeita datas impossíveis, segundos intercalares, hora 24, deslocamentos fora do intervalo ISO e instantes que, normalizados em UTC, fiquem fora dos anos 0001 a 9999. Esse contrato rigoroso torna o resultado adequado para migrações, dados de teste, verificações de banco de dados e diagnóstico de protocolos.
Use Z maiúsculo e o separador literal T para representar o instante de maneira compacta e auditável.
Entenda como o valor em ticks é calculado
Um tick DateTime do . NET é um intervalo de cem nanossegundos desde 0001-01-01T00:00:00 no calendário gregoriano proléptico. O cálculo primeiro valida ano, mês, dia, hora, minuto e segundo.
Depois conta os dias completos anteriores ao ano informado, incluindo as regras gregorianas de anos bissextos, soma os dias completos do ano atual e converte o horário do dia em segundos. O deslocamento numérico informado é subtraído para obter UTC antes da formação da contagem de ticks. Por fim, os segundos são multiplicados por dez milhões e o componente fracionário de sete dígitos é somado.
Não participam o relógio do sistema, o fuso do computador, uma solicitação de rede, um valor aleatório nem o analisador Date nativo. Assim, o resultado permanece idêntico em um worker do servidor e em um navegador em qualquer fuso horário.
Use o resultado UTC normalizado para conferir integrações
O campo UTC normalizado funciona como evidência: antes de aceitar o inteiro, você pode confirmar se o deslocamento informado alterou a hora e, quando necessário, a data do calendário na direção esperada. Em C#, o valor numérico corresponde aos ticks do horário UTC normalizado, com época no ano um; ele não inclui os indicadores binários de tipo do DateTime. Considere essa diferença ao analisar valores gerados por DateTime.ToBinary, convenções de armazenamento DateTimeOffset ou épocas específicas de uma aplicação.
Em testes automatizados de regressão, salve tanto o texto UTC canônico quanto a cadeia de ticks. O par simplifica o diagnóstico: UTC incorreto indica tratamento do fuso, enquanto UTC igual com inteiro diferente indica época, precisão ou arredondamento numérico.
Casos de uso
Examine registros de data antigos
Converta um instante ISO conhecido antes de compará-lo com valores em ticks armazenados em logs, exportações ou tabelas de aplicações antigas.
Investigue erros de fuso e precisão
Confira a data UTC canônica ao lado da contagem de ticks para separar falhas de fuso de problemas de fração ou arredondamento de inteiros.
Perguntas frequentes
O que representa um tick do .NET?
Um tick equivale a cem nanossegundos. Há dez milhões de ticks em um segundo.
É obrigatório informar um fuso horário?
Sim. Use Z ou um deslocamento como +01:00. Datas sem fuso são ambíguas e são rejeitadas, em vez de serem interpretadas pela configuração do computador.
São aceitos sete dígitos fracionários?
Sim. O conversor aceita de um a sete dígitos fracionários e completa frações menores até a precisão de sete dígitos do DateTime.
O resultado inclui indicadores de tipo do DateTime?
Não. Ele retorna a contagem de ticks UTC desde o ano um, sem os indicadores adicionais usados em representações como DateTime.ToBinary.
Quais datas posso converter?
Qualquer instante cujo horário UTC fique entre os anos 0001 e 9999. Datas impossíveis, segundos intercalados e a hora 24 são recusados, assim como deslocamentos fora da faixa usual.
Ferramentas relacionadas
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/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)Exemplo de requisição
{
"datetime": "2024-02-29T12:34:56.1234567+02:30"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.date_to_dotnet_ticks",
"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. |
Notas técnicas
O resultado é fornecido como texto decimal para manter exatos até mesmo valores muito grandes em JavaScript, JSON, planilhas, ferramentas de linha de comando e testes de integração entre linguagens.
Entenda como o valor em ticks é calculado
Como quase todo valor útil ultrapassa o limite de inteiros exatos do JavaScript, dotnet_ticks é retornado deliberadamente como texto decimal. Trate-o como inteiro em linguagens com suporte a 64 bits ou mantenha-o como texto ao passar por sistemas JSON que possam arredondar números grandes.
Use o resultado UTC normalizado para conferir integrações
A resposta inclui o datetime original, um utc_datetime canônico com exatamente sete dígitos fracionários, o texto exato dotnet_ticks e uma descrição clara da unidade do tick. Isso ajuda especialmente ao comparar uma carga de API com logs em C#, exportações SQL, registros de telemetria ou arquivos antigos cujas marcas de data e hora foram serializadas como ticks.
Casos de integração
Prepare dados de teste entre linguagens
Crie cadeias de ticks esperadas e exatas para testes de integração com JavaScript, C#, bancos de dados e API sem depender do fuso horário do computador.
Perguntas técnicas
Por que dotnet_ticks é retornado como texto?
A maioria dos valores DateTime ultrapassa a faixa segura de inteiros do JavaScript. Uma cadeia decimal preserva todos os dígitos no JSON e no navegador.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002. A versão no navegador usa a mesma lógica determinística de conversão.