2015-01-02 14 views
10

Sto cercando di convertire il valore di data e ora di un file in data e ora per confrontare due differenze di data e ora.Conversione da String a DateTime in PowerShell

I dati verrebbero in formato 24122014_022257. Devo convertirlo in data e ora per confrontare i valori:

$usdate="24122014_022257" 
$dateParts = $usdate -split "_" 
$final = $dateparts[0] + $dateParts[1] 

Come posso farlo?

risposta

18

È possibile utilizzare il metodo ParseExact:

[datetime]::ParseExact('24122014_022257','ddMMyyyy_HHmmss',$null) 

Wednesday, December 24, 2014 2:22:57 AM 
+5

Usa '[Globalization.CultureInfo] :: InvariantCulture' piuttosto che' $ null'. Quest'ultimo genera un errore se, per esempio, la stringa di formato ha una designazione AM/PM mentre le impostazioni regionali del sistema no. –

+1

Solitamente aggiungo l'identificatore 'tt' alla stringa di formato se sto convertendo un dato che utilizza gli specificatori AM/PM. – mjolinor

+1

Non vedo il punto nell'aggiunta di un'opzione per gestire le differenze culturali nei designatori AM/PM facendo un ParseExact su stringhe che non hanno quel designatore. – mjolinor

8

ParseExact farà proprio questo. È possibile specificare il formato datetime personalizzato nel secondo parametro. Puoi lasciare il terzo parametro come null o specificare una cultura da utilizzare (potrebbe essere importante importare file generati dal sistema con fuso orario diverso).

$usdate="24122014_022257" 
[datetime]::ParseExact($usdate,"ddMMyyyy_HHmmss", [System.Globalization.CultureInfo]::CurrentCulture) 
2

Get-Date 24.122.014,022257 millions

Mercoledì 24 Dicembre 2014 02:22:57

Problemi correlati