androxin
Goto Top

Datum in Datei speichern und wieder auslesen

Moinsen,

ich spiele gerade ein wenig mit der Powershell und Zeitstempeln rum:
Zeitstempel mit Get-Date erstellen, als String in Datei speichern, wieder einlesen, in ein Datums-Objekt wandeln und weiterverarbeiten.

Dabei ist mir aufgefallen, dass sich die Shell ein wenig merkwürdig verhält, wenn es um die Verarbeitung von Datumsangaben geht.

Ich hätte gerne eine einfache Lösung, die unabhängig von der "Culture" des Systems arbeitet und möglichst auch bei älteren PowerShell Versionen funktioniert.
Ursprünglich hatte ich auf die "-- FileDateTime"-Funktion von Gate-Date gehofft, allerdings gibt's die erst ab PS 5.0. face-sad

Die einfachste Lösung auf die ich bis jetzt gekommen bin, ist:
[...] 
$zeitstempel = Get-Date -Format g

Out-File "$Pfad\datei.txt" -InputObject $zeitstempel -NoNewline  

$eingelesenerString = Get-Content "$Pfad\datei.txt"  

$eingelesenerZeitstempel = Get-Date -Date ("$eingelesenerString")  
[...]

Habt ihr einen Best Practice Tipp für mich?

Content-Key: 283667

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

Printed on: April 23, 2024 at 16:04 o'clock

Mitglied: 122990
Solution 122990 Sep 23, 2015 updated at 12:29:03 (UTC)
Goto Top
Moin,
benutze den Formatspezifizierer "u" der ist "Culture-Independent" immer gleich,
https://msdn.microsoft.com/de-de/library/az4se3k1(v=vs.110).aspx
oder arbeite mit der Eigenschaft ticks des Date-Objects.

Gruß grexit
Member: Androxin
Androxin Sep 23, 2015 updated at 10:20:22 (UTC)
Goto Top
Das dürfte dann in diese Richtung gehen?

$aktuelleZeit = (Get-Date).Ticks
Out-File "$pfad\datei.txt" -InputObject $aktuelleZeit -NoNewline  
$eingelesenerZeitstempel = [DateTime]::FromBinary((Get-Content "$pfad\datei.txt"))  
$eingeleseneZeit = Get-Date $eingelesenerZeitstempel
Mitglied: 122990
Solution 122990 Sep 23, 2015 updated at 12:29:01 (UTC)
Goto Top
Ja, oder eben auch:
(get-Date).ToUniversalTime().toString("u") | out-file "$pfad\datei.txt"  
$date = get-date (gc "$pfad\datei.txt")