2012-05-28 37 views
5

Estoy analizando una base de datos SQLite utilizando el módulo PowerShell SQLite, y se crean y modifican algunos de los valores devueltos, ambos en tiempo Unix.Convertir tiempo Unix con PowerShell

Lo que me gustaría hacer es de alguna manera convertir eso en "tiempo humano". He eliminado algunas de las otras consultas SQL para facilitar la lectura.

Import-Module SQLite 
mount-sqlite -name GoogleDrive -dataSource E:\Programming\new.db 
$cloud_entry = Get-ChildItem GoogleDrive:\cloud_entry 

foreach ($entry in $cloud_entry) 
{ 
    $entry.created 
} 

Fui con lo siguiente:

$ctime = $entry.created 
[datetime]$origin = '1970-01-01 00:00:00' 
$origin.AddSeconds($ctime) 

La salida se ve como una gran columna de marcas de tiempo Unix:

1337329458 

Respuesta

12

http://codeclimber.net.nz/archive/2007/07/10/convert-a-unix-timestamp-to-a-.net-datetime.aspx

Puede reproducir fácilmente esta en PowerShell .

$origin = New-Object -Type DateTime -ArgumentList 1970, 1, 1, 0, 0, 0, 0 
$whatIWant = $origin.AddSeconds($unixTime) 

Editar: Lo sentimos, se corrigieron los errores.

+5

[fecha y hora] $ origen '= '1970-01-01 00: 00: 00'' funciona igual de bien, y es quizás un poco más fácil de entender –

+0

Recibo este error: ¿Alguna idea? No se puede convertir el argumento "0", con el valor: "", para "AddSeconds". Algunos de los valores son "nulos", ya que algunos de los elementos de la base de datos no tienen asignada una fecha de creación/modificación. Estoy asumiendo que es de donde viene ese error. – mrwh1t3

1
$ctime = $entry.created 
[datetime]$origin = '1970-01-01 00:00:00' 
$origin.AddSeconds($ctime) 
8
Function Convert-FromUnixDate ($UnixDate) { 
    [timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($UnixDate)) 
} 

$niceTime = Convert-FromUnixDate $ctime 

PS C:\> $niceTime 

Friday, 18 May 2012 8:24:18 p.m. 
2
$date = get-date "1/1/1970" 
$date.AddSeconds($unixTime).ToLocalTime() 
1

Un simple chiste:

(Get-Date "1970-01-01 00:00:00.000Z") + ([TimeSpan]::FromSeconds($unixTime)) 
Cuestiones relacionadas