Ich muss den Unterschied zwischen einem DateTime und Sysdate in Sekunden bekommen.New-TimeSpan -Start kann nicht gebunden werden. Wert ist kein DateTime
Dieser Code funktionierte für Monate gut. Da ich es in eine Funktion setzen, erhalte ich die Fehlermeldung:
New-TimeSpan : The parameter "Start" cannot be bound. The Value "06/14/2016 09:50:42" cannot get converted into "System.DateTime". Error : "String is no valid DateTime."
(in eigenen Worten übersetzt, weil Konsolausgabe Deutsch ist)
function _CalcRunningTime
{
param([String] $p_sDatetime)
$sSYSDATE = Get-Date -format "dd.MM.yyyy HH:mm:ss"
$oCulture = New-Object System.Globalization.CultureInfo("de-DE")
$p_sDatetime = [DateTime]::ParseExact($p_sDatetime, "dd.MM.yyyy HH:mm:ss", $oCulture)
$sSYSDATE = [DateTime]::ParseExact($sSYSDATE, "dd.MM.yyyy HH:mm:ss", $oCulture)
$oTIMESPAN = New-TimeSpan –Start $p_sDatetime –End $sSYSDATE
$iSeconds = ($oTIMESPAN.Hours * 3600) + ($oTIMESPAN.Minutes * 60) + $oTIMESPAN.Seconds
Return $iSeconds
}
Eingabeformat von $p_sDatetime
ist z.B. 06.14.2016 09:50:42
. Nach ParseExact()
ist das Format wie oben gezeigt.
Die Funktion TotalSeconds ist nicht highlightes für mich. Ich erhalte einen Fehler: Der Rückgabewert meiner Funktion kann nicht in System.Int32 konvertiert werden. – Yaerox
@Mike Kann nicht reproduzieren. Die Eigenschaft 'TotalSeconds' sollte ein Double zurückgeben, das in Integer umgewandelt werden kann. –
Sry, ich kann es nicht mehr reproduzieren ... für mich funktioniert das jetzt auch ... Ich glaube, ich hatte irgendwo ein anderes Problem und ich habe alles durcheinander gebracht. Danke dir, mein Herr. – Yaerox