Einfachen weg in Powershell Datum von zu formatieren
Hallo Leute,
Habe folgende csv datei:
Gibt es in powershell einen einfachen weg das Geburtsdatum von 03041981 zu 03/04/1981 formatieren.
Also was ich gern hätte währe so was:
Habe folgende csv datei:
Name; Nachname; Email; Sex; Geburtsdatum; Beruf;
Robson; Ramalho; robson.ramalho@tech.com; M;04091981; Freelancer;
Ricardo; Bohner; ricardobohner@network.com; M;03061979; Gärtner;
Sabrina; Sato; sabrinasato@gmail.com; W; 04021981; Host;
Papai; Noel; papainoel@polonorte.com;M ; 06091920; Weihnachtsman;
Gibt es in powershell einen einfachen weg das Geburtsdatum von 03041981 zu 03/04/1981 formatieren.
Also was ich gern hätte währe so was:
Name; Nachname; Email; Sex; Geburtsdatum; Beruf;
Robson; Ramalho; robson.ramalho@tech.com; M;04/09/1981; Freelancer;
Ricardo; Bohner; ricardobohner@network.com; M;03/06/1979; Gärtner;
Sabrina; Sato; sabrinasato@gmail.com; W; 04/02/1981; Host;
Papai; Noel; papainoel@polonorte.com;M ; 06/09/1920; Weihnachtsman;
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 564056
Url: https://administrator.de/forum/einfachen-weg-in-powershell-datum-von-zu-formatieren-564056.html
Ausgedruckt am: 23.12.2024 um 00:12 Uhr
6 Kommentare
Neuester Kommentar
Joa, z.B. mit ParseExact wenn man es als echtes Datum umwandeln möchte
oder auch mit nem einfachen Regex String replace
$csv = Import-Csv 'd:\datei.csv' -delimiter ";"
$csv | %{$_.Geburtsdatum = [datetime]::parseExact($_.Geburtsdatum,'ddMMyyyy',[cultureinfo]::InvariantCulture).toString('dd/MM/yyyy',[cultureinfo]::InvariantCulture)}
$csv | export-csv 'd:\datei_neu.csv' -delimiter ";" -NoType -Encoding UTF8
$csv = Import-Csv 'd:\datei.csv' -delimiter ";"
$csv | %{$_.Geburtsdatum = $_.Geburtsdatum -replace '(\d{2})(\d{2})(\d{4})','$1/$2/$3'}
$csv | export-csv 'd:\datei_neu.csv' -delimiter ";" -NoType -Encoding UTF8
Zitat von @ricardobohner:
Hallo Cabrinha,
Wenn ich in der Originaltabele " Geburtsdatum" in "Geburtsdatum" umbenenne funktioniert es. Kann man es irgendwie umschreiben das es das Leerzeichen auf der linken seite anerkennt?
Das geschieht automatisch dazu ist keine weitere Aktion nötig, weil die Powershell automatisch führende Leerzeichen entfernt! Guckst du hier das BeispielHallo Cabrinha,
Wenn ich in der Originaltabele " Geburtsdatum" in "Geburtsdatum" umbenenne funktioniert es. Kann man es irgendwie umschreiben das es das Leerzeichen auf der linken seite anerkennt?
https://tio.run/##jZDdSsNAEIXv8xSDKFXQ2qqodRGCxb@LiFjQCxGZbkazmOyG2UlV1L ...
Du solltest stattdessen deine PS updaten. Sollten da tatsächlich Eigenschaften mit Leerzeichen erkannt worden sein spricht man diese z.B. so an
$_.' Geburtsdatum'
Und wenn der text in einer anderen Sprache währe zum beispiel Portuguisisch (Brasilien) weisst du was ich in dem culturinfo teil eingeben müste.
Brauchst du nicht, die Culture ist in dem Fall irrelevant, da hier englische Formatbezeichner benutzt werden, würdest du im Format-String portugiesische verwenden dann wäre es nötig, so aber nicht.Falls du es trotzdem wissen willst
[cultureinfo]::GetCultureInfo('pt-BR')
Du musst ja auch das Encoding entsprechend beim Import an das deiner Datei anpassen wenn es nicht dem Standard entspricht!
Hier als bsp. für das Default-Encoding, oder eben UTF8, Unicode usw. Was möglich ist zeigt dir die ISE in der Intellisense...
Das zum Thema RTFM, dachte das wäre zumindest bekannt, aber naja is ja schon wieder Freitag .
Aber auch das geht wenn du unbedingt willst
https://tio.run/##jVDBTttAFLz7K56iIAcpCQlFlLBCMk2JxMEIkaoXVKEX@4FXWu@z3i ...
Oder eben plain mit einem regex Replace
https://tio.run/##TVDBSsNAEL3vV@whEAvaJmmphkVIBQseWoq9etmko1nY7ITZpQrSjx ...
Hier als bsp. für das Default-Encoding, oder eben UTF8, Unicode usw. Was möglich ist zeigt dir die ISE in der Intellisense...
$csv = Import-Csv 'bd.csv' -delimiter ";" -Encoding Default
Alle felder bekommen Anführungsstrichen die Leerzeichen gehen verloren
Das ist kein Problem das entspricht den CSV Konventionen, so ist es sogar besser weil sonst Semikolons im Text zu Fehlern führen würden.Aber auch das geht wenn du unbedingt willst
https://tio.run/##jVDBTttAFLz7K56iIAcpCQlFlLBCMk2JxMEIkaoXVKEX@4FXWu@z3i ...
Oder eben plain mit einem regex Replace
https://tio.run/##TVDBSsNAEL3vV@whEAvaJmmphkVIBQseWoq9etmko1nY7ITZpQrSjx ...