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.
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"
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
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
| 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 |
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.