tezzla
Goto Top

Datum (String) mit Get-Date vergleichen

Guten Morgen zusammen,

es wird ein Datum mit Uhrzeit in Script 1 erzeugt und irgendwann per Softwareverteilung an ein zweites Powershellscript übergeben werden, der String wieder als Datum umgewandelt und die Zeitdifferenz berechnet. Soweit die Theorie.

Datum aus Script 1 erzeugen:
Get-Date -Format "dddd MM/dd/yyyy HH:mm"  
Output: Montag 12.14.2020 08:03

Zeitdifferenz in Script 2 berechnen lassen:
[string]$send = "Montag 12.14.2020 08:03" <- Hier fügt die Softwareverteilung den String aus einer anderen Variable ein  
[datetime]$send = [datetime]::ParseExact($send, "dddd MM/dd/yyyy HH:mm", $null)  

$timedif = New-TimeSpan -Start $send -End (Get-Date)

Write-Host $timedif.Days $timedif.Hours $timedif.Minutes
Output: 0 23 50

Wenn ich das in der ISE ausführe, alles gut.
Wenn ich das per Softwareverteilung ausführe, meckert er, dass "Montag 12.14.2020 08:03" nicht als gültiges DateTime erkannt wurde.
Habe da vorne und hinten schon alles weggetrimmt, dass tatsächlich nur der String wie oben in $send drin steht.

Was übersehe ich hier?

Besten Dank und viele Grüße

Content-Key: 631624

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

Printed on: May 7, 2024 at 21:05 o'clock

Member: StefanKittel
Solution StefanKittel Dec 15, 2020 at 07:08:18 (UTC)
Goto Top
Moin,

mag sein, dass die Software nur englisch spricht?
Oder vieleicht möchte er auch Sekunden haben?
Ich würde das dddd weglassen.

Stefan
Mitglied: 146707
Solution 146707 Dec 15, 2020 updated at 07:33:58 (UTC)
Goto Top
Das liegt in der Culture die du ja auf $null setzt aber im Datum einen deutschen Wochentag nutzt, wenn jetzt die Culture auf dem anderen System per Default auf Englisch steht kann er das nicht mehr parsen, wenn du also einen deutschen Datumsstring übergibst und du die richtige Culture im Parameter angibst dann geht auch das wieder
https://tio.run/##RYyxCoMwFAB3v@IRBFsQjbaDBDoWXITuwSGYVxtIYkmetP36NHTpjc ...
Ich würde das Datum ja im Universalformat nach ISO übergeben oder als Ticks oder eben gleich als Date Object dann entfällt das culture anpassen....
Member: Tezzla
Tezzla Dec 15, 2020 at 07:35:11 (UTC)
Goto Top
Wochentag hatte ich auch schonmal rausgenommen, ohne Effekt.
Ohne Wochentag und mit Culture passt es aber.

Eins von beiden reicht nicht.

Vielen Dank euch beiden!