2016-08-04 4 views
1

Um mit dem britischen Datumsformat zu arbeiten, wie ich es vorziehe, wird das folgende Code-Snippet mir ein britisches Datumsformat (Powershell berücksichtigt nicht Maschinensprache).Gibt es eine einfachere Möglichkeit, mit dem britischen Datumsformat in Powershell zu arbeiten?

$UKdate = [datetime]::Parse($req.ServicePoint.Certificate.GetExpirationDateString(),([Globalization.CultureInfo]::CreateSpecificCulture('en-GB')))

Dies scheint unhandlich, vor allem, wenn die Sprache normalerweise so prägnant ist. Gibt es einen besseren Weg, den ich nicht kenne?

Antwort

2

PowerShell berücksichtigt zwar das Gebietsschema, aber das Umwandeln in [DateTime] funktioniert nicht.

Das heißt, wenn Sie dies mit einer britischen Kultur laufen waren es wird sie als UK Datum analysieren:

Get-Date $req.ServicePoint.Certificate.GetExpirationDateString() 

Wo, wie dies immer en-US wählen wird:

[DateTime]$req.ServicePoint.Certificate.GetExpirationDateString() 

Chris

+0

Das ist richtig in der Fairness. Mein Problem tritt auf, wenn ich versuche, etwas wie "Tee-Objekt $ LogFile" zu tun, das am $ UKDate abläuft, wenn es wieder im US-Format gedruckt wird! Daher wird das Datum korrekt erfasst. Wenn Sie die Variable dann jedoch in eine Zeichenfolge einbetten, wird sie auf das US-Datumsformat zurückgesetzt. – kafka

+0

So ist es, aber das ist schwerer zu überschreiben, weil es einfach ein DateTime-Objekt in eine Zeichenfolge einbezieht. Reproduzierbar mit '$ ukdate = Get-Date; "$ ukdate" '. Beachten Sie, dass, während ich sage, es ist ein britisches Datum dort ist es nichts von der Art, es ist ein DateTime-Objekt. Sie können umgehen, indem Sie die ToString-Methode für DateTime explizit aufrufen. '$ ukdate.ToString()'. Nicht ideal, aber. –

+0

Danke. Ich habe ein paar Fragen gestellt, da es eine Weile her ist, seit ich mir das angesehen habe. Ich habe es mit: Tee-Object $ LogFile "dieses läuft am" -Append $ UKDate ab. Was ist nicht ideal .... – kafka

Verwandte Themen