seabeck.pages.dev

Como converter data de sistema Windows para Unix timestamp?

Converter datas do formato Windows para Unix timestamp pode parecer complexo, mas com o método certo, você pode realizar essa tarefa de forma rápida e precisa. Este guia apresenta a abordagem mais eficaz para realizar essa conversão, garantindo resultados confiáveis.

Pré-requisitos

Passo 1: Entendendo a base de conversão

O Unix timestamp é calculado a partir do número de segundos desde 1º de janeiro de 1970 (UTC). No Windows, a data do sistema é baseada em um formato diferente. Para converter, precisamos ajustar essa diferença de base.

# Definindo a data base do Unix (1º de janeiro de 1970)
$unixEpoch = Get-Date -Date "1970-01-01 00:00:00Z"

Passo 2: Calculando o Unix timestamp

Com a data base definida, podemos calcular o Unix timestamp subtraindo a data desejada da data base e convertendo o resultado para segundos.

# Convertendo a data do sistema para Unix timestamp
$systemDate = Get-Date
$unixTimestamp = [math]::Floor(($systemDate.ToUniversalTime() - $unixEpoch).TotalSeconds)
Write-Output $unixTimestamp

Passo 3: Convertendo uma data específica

Se você precisar converter uma data específica, basta substituir a variável $systemDate pela data desejada.

# Convertendo uma data específica para Unix timestamp
$specificDate = Get-Date -Date "2023-10-05 15:30:00"
$unixTimestamp = [math]::Floor(($specificDate.ToUniversalTime() - $unixEpoch).TotalSeconds)
Write-Output $unixTimestamp

Exemplo Prático

Data do Sistema Windows Unix Timestamp
2023-10-05 15:30:00 1696521000
2024-01-01 00:00:00 1735689600
2025-12-31 23:59:59 1767225599

Conclusão

Com este método, você pode converter datas do sistema Windows para Unix timestamp de forma rápida e precisa. Esta abordagem é especialmente útil para desenvolvedores e administradores de sistemas que precisam trabalhar com diferentes formatos de data em seus projetos.