Quando precisamos sincronizar logs ou processar dados em sistemas distribuídos, obter a data e hora tanto no formato UTC quanto no horário local em um único comando se torna essencial. Este método permite capturar ambas as referências de tempo de forma precisa e instantânea, eliminando possíveis descompassos entre execuções.
O PowerShell oferece cmdlets nativos para trabalhar com datas e fusos horários. O cmdlet Get-Date pode retornar a data e hora atual, e com a propriedade DateTime podemos formatar a saída conforme necessário. Para obter ambas as referências de tempo, usaremos a propriedade Kind para distinguir entre UTC e local.
$dataLocal = Get-Date
$dataUTC = (Get-Date).ToUniversalTime()
Write-Host "Data e Hora Local: $($dataLocal.ToString('yyyy-MM-dd HH:mm:ss'))"
Write-Host "Data e Hora UTC: $($dataUTC.ToString('yyyy-MM-dd HH:mm:ss'))"
Para situações que exigem maior controle sobre o formato de saída, podemos criar um script mais elaborado que inclui o fuso horário local e o deslocamento UTC.
function Get-DataHoraSimultanea {
$dataLocal = Get-Date
$dataUTC = (Get-Date).ToUniversalTime()
$offsetUTC = [System.TimeZoneInfo]::Local.GetUtcOffset($dataLocal)
$resultado = [PSCustomObject]@{
"DataHoraLocal" = $dataLocal.ToString('yyyy-MM-dd HH:mm:ss')
"FusoHorario" = $offsetUTC.ToString()
"DataHoraUTC" = $dataUTC.ToString('yyyy-MM-dd HH:mm:ss')
"TimeStampUTC" = $dataUTC.ToString('o') # Formato ISO 8601
}
return $resultado
}
Get-DataHoraSimultanea | Format-List
| Propriedade | Valor de Exemplo | Descrição |
|---|---|---|
| DataHoraLocal | 2024-03-15 14:30:45 | Data e hora no fuso horário local |
| FusoHorario | -03:00:00 | Deslocamento em relação ao UTC |
| DataHoraUTC | 2024-03-15 17:30:45 | Data e hora no formato UTC |
| TimeStampUTC | 2024-03-15T17:30:45.0000000Z | Timestamp UTC no formato ISO 8601 |
Com este script PowerShell, você pode obter simultaneamente a data e hora local e UTC de forma precisa e formatada, facilitando a sincronização de logs, a análise de dados em sistemas distribuídos e a geração de timestamps padronizados para auditoria e monitoramento.