ankhmorpork
Goto Top

Powershell Datumsformat de, en

Hallo zuasmmen,

ich erfrage das Datum des letzten Bootvorgangs mit folgender Funktion:
Function Get-LastBootUp
{
$a = Get-WmiObject -class win32_OperatingSystem
$b =[Management.ManagementDateTimeConverter]::ToDateTime($a.LastBootUpTime)
"Last boot up: " + $b  
}

Get-LastBootUp

Es geht um Zeile 5.
Wenn da ... + $b steht, sieht die Ausgabe so aus:
Last boot up: 03/12/2014 07:28:48
also englisches Format.

Wenn da ... , $b steht, kommt:
Last boot up:

Mittwoch, 12. März 2014 07:28:48
also deutsches Format.


Mich interessiert im Moment nur, warum das so ist. Kann mich da jemand auf den Pfad der Erkenntnis bringen? Google sagt mir leider nichts konkretes.
Ansonsten behelfe ich mir mit
"Last boot up: " + (Get-Date $b -format F)  


Gruß

ANKH

Content-Key: 232376

Url: https://administrator.de/contentid/232376

Ausgedruckt am: 19.03.2024 um 02:03 Uhr

Mitglied: colinardo
Lösung colinardo 12.03.2014, aktualisiert am 18.07.2014 um 07:49:55 Uhr
Goto Top
Hi ANKH,
ich vermute das .NET hier bei keiner expliziten Angabe zur Konvertierung zum String das Englische Format benutzt. Wenn du es explizit mit der toString() Methode konvertierst wird das lokal eingestellte Format des Rechners bzw. Users verwendet: Die toString() Methode ist vermutlich eine Override Function. http://msdn.microsoft.com/de-de/library/system.datetime_methods%28v=vs. ...

Function Get-LastBootUp
{
    gwmi "Win32_OperatingSystem" | %{"Last boot up: " + $_.ConvertToDateTime($_.LastBootUpTime).toString("F")}  
}
Get-LastBootUp
p.s. noch eine kleine Abkürzung durch Nutzung der Convert-Funktion des WMI-Objects hinzugefügt face-wink

Grüße Uwe
Mitglied: AnkhMorpork
AnkhMorpork 12.03.2014 um 09:26:08 Uhr
Goto Top
Hallo Uwe,

danke für deine Einschätzung. Manche Dinge muss man wohl einfach akzeptieren as is.
Die toString() Methode ist mir garnicht in den Sinn gekommen und die Convert-Funktion ist genial.
Naja, ich arbeite ja noch dran.

Gruß

ANKH