Wie man Datetime mit ParseExact in PowerShell parst
-
Verwenden Sie die Methode
ParseExact
, umDateTime
in PowerShell zu analysieren -
Verwenden Sie die explizite Typumwandlung, um
DateTime
in PowerShell zu analysieren - Fazit

Während der Arbeit mit Daten in PowerShell gibt es Zeiten, in denen Sie die Datumszeichenfolge in ein DateTime
-Objekt konvertieren müssen. Sie können Datumszeichenfolgen nicht verwenden, um DateTime
-Operationen durchzuführen; Sie benötigen das DateTime
-Objekt.
Diese Umwandlung ist entscheidend, da Datumszeichenfolgen allein nicht ausreichen, um DateTime
-Operationen durchzuführen. Unser Tutorial soll diese Lücke schließen, indem es umfassende Anleitungen zur Analyse und Konvertierung von Zeichenfolgen in das DateTime
-Format in PowerShell bereitstellt.
Verwenden Sie die Methode ParseExact
, um DateTime
in PowerShell zu analysieren
Die Methode ParseExact
der Klasse DateTime
konvertiert die Datum- und Uhrzeitzeichenfolge in das DateTime
-Format. Das Format eines Datums- und Uhrzeitzeichenfolgenmusters muss mit dem angegebenen Format des DateTime
-Objekts übereinstimmen.
Die Syntax für ParseExact
lautet wie folgt:
[datetime]::ParseExact(string, format, provider)
Parameter:
string
: Das Datum und die Uhrzeit im Zeichenfolgenformat, das Sie konvertieren möchten.format
: Der genaue Formatbezeichner, der das erwartete Format der Zeichenfolge definiert.provider
: Ein Objekt, das kultur-spezifische Formatierungsinformationen bereitstellt. Dies kannnull
sein, wenn die aktuelle Kultur verwendet wird.
Einfache Datumsanalyse
Im folgenden Beispiel wird die Datumszeichenfolge in ein DateTime
-Objekt unter Verwendung der Methode ParseExact
konvertiert.
$dateString = '24-Jan-2024'
$format = 'dd-MMM-yyyy'
$culture = $null # Using the current culture
# Parsing the date
$parsedDate = [datetime]::ParseExact($dateString, $format, $culture)
# Displaying the result
Write-Host "Parsed Date: $parsedDate"
In diesem Code definieren wir zunächst eine Datumszeichenfolge 24-Jan-2024
, die ein Datum im Tag-Monat-Jahr-Format mit einem abgekürzten Monatsnamen darstellt. Wir geben dieses Format mit dem Formatbezeichner dd-MMM-yyyy
an.
Die Variable $culture
wird auf $null
gesetzt, was PowerShell anweist, die aktuelle Kultur-Einstellung des Systems zum Parsen des Datums zu verwenden.
Die zentrale Funktion hier ist [datetime]::ParseExact($dateString, $format, $culture)
, die die $dateString
gemäß dem angegebenen $format
analysiert. Nach der Analyse wird die Zeichenfolge in ein DateTime
-Objekt konvertiert, das wir in der Variablen $parsedDate
speichern.
Schließlich verwenden wir Write-Host
, um das analysierte Datum anzuzeigen. Dies ist eine einfache, aber effektive Demonstration der Verwendung von ParseExact
in einem realen Szenario.
Ausgabe:
Diese Ausgabe zeigt das DateTime
-Objekt, das aus der Zeichenfolge erstellt wurde, einschließlich der Uhrzeit, die standardmäßig auf Mitternacht (00:00:00
) gesetzt ist, da in der Eingabezeichenfolge keine Uhrzeit angegeben wurde.
Verwendung einer spezifischen Kultur
Die Verwendung einer spezifischen Kultur mit ParseExact
ist entscheidend, wenn Sie es mit Datumszeichenfolgen zu tun haben, die gemäß den Konventionen einer anderen Kultur als der aktuellen Systemeinstellung formatiert sind. Dieser Ansatz verhindert Fehlinterpretationen von Daten, wie das Verwechseln von Monat und Tag in den Formaten MM/dd/yyyy
und dd/MM/yyyy
.
Hier ist ein einfaches Beispiel:
$dateString = '23/01/2024'
$format = 'dd/MM/yyyy'
$culture = [Globalization.CultureInfo]::CreateSpecificCulture('fr-FR')
# Parsing the date
$parsedDate = [datetime]::ParseExact($dateString, $format, $culture)
# Displaying the result
Write-Host "Parsed Date: $parsedDate"
In diesem Codeausschnitt zielen wir darauf ab, eine Datumszeichenfolge zu analysieren, die dem französischen Datumsformat dd/MM/yyyy
folgt. Wir definieren zunächst die Datumszeichenfolge 23/01/2024
.
Beachten Sie, dass das Format dd/MM/yyyy
leicht mit dem in den Vereinigten Staaten verwendeten Format MM/dd/yyyy
verwechselt werden könnte. Um das Datum korrekt als 23. Januar zu interpretieren und nicht als 1. März, geben wir die französische Kultur ('fr-FR')
an.
Die Variable $culture
wird mit [Globalization.CultureInfo]::CreateSpecificCulture('fr-FR')
instanziiert, was den kulturellen Kontext für unsere Analyseoperation vorbereitet. Dann rufen wir [datetime]::ParseExact($dateString, $format, $culture)
auf, um die Datumszeichenfolge zu analysieren.
Schließlich verwenden wir Write-Host
, um das analysierte Datum anzuzeigen, das veranschaulicht, wie die Eingabezeichenfolge im Kontext der angegebenen Kultur korrekt interpretiert wird.
Ausgabe:
Diese Ausgabe demonstriert das erfolgreiche Parsen der Datumszeichenfolge im Kontext der französischen Kultur. Das Datum wird korrekt als 23. Januar 2024 verstanden und nicht aufgrund der unterschiedlichen Monats-Tages-Reihenfolge fehlinterpretiert.
Analyse mit Uhrzeit
In PowerShell ist der effiziente Umgang mit Datum und Uhrzeit eine entscheidende Fähigkeit, insbesondere wenn es darum geht, Zeichenfolgen zu analysieren, die sowohl Datums- als auch Zeitkomponenten enthalten. Die Methode ParseExact
der Klasse DateTime
ist gut geeignet, um solche Zeichenfolgen zu interpretieren, vorausgesetzt, das Format wird genau angegeben.
Lassen Sie uns eine Datetime-Zeichenfolge analysieren, die sowohl Datum als auch Uhrzeit enthält:
$dateTimeString = '2024-01-23 14:30'
$format = 'yyyy-MM-dd HH:mm'
$provider = $null # Opting for the invariant culture
# Parsing the datetime
$parsedDateTime = [datetime]::ParseExact($dateTimeString, $format, $provider)
# Displaying the result
Write-Host "Parsed DateTime: $parsedDateTime"
In unserem Beispiel bearbeiten wir eine Datetime-Zeichenfolge 2024-01-23 14:30
, die im internationalen Standard formatiert ist (Jahr-Monat-Tag und 24-Stunden-Zeit). Wir setzen das $format
sorgfältig auf yyyy-MM-dd HH:mm
, um mit dieser Struktur übereinzustimmen.
Wir wählen $null
für den $provider
, was unser Gebrauch der invariantkulturellen Kultur kennzeichnet. Dieser Ansatz ist typisch, wenn das Datetime-Format standardisiert und nicht kulturabhängig ist.
Der entscheidende Moment ist, wenn wir [datetime]::ParseExact($dateTimeString, $format, $provider)
ausführen, wobei wir die Zeichenfolge in ein DateTime
-Objekt transformieren, das sowohl das Datum als auch die Uhrzeit aus der Zeichenfolge verkörpert.
Ausgabe:
Dieses Ergebnis veranschaulicht effektiv, dass unsere Eingabezeichenfolge genau in ein DateTime
-Objekt analysiert wurde, das sowohl Datums- als auch Zeitkomponenten erfasst.
Verwenden Sie die explizite Typumwandlung, um DateTime
in PowerShell zu analysieren
Sie können auch die Zeichenfolge eines Datums und einer Uhrzeit im PowerShell in das DateTime
-Format umwandeln.
Mit dieser Syntax können Sie eine Zeichenfolge in das DateTime
-Objekt umwandeln.
[DateTime]string
Im folgenden Beispiel wird die Zeichenfolgendarstellung eines Datums und einer Uhrzeit in das DateTime
-Objekt mit dem Umwandlungsausdruck konvertiert.
$strDate = "2022-06-11 09:22:40"
[DateTime]$strDate
In unserem PowerShell-Codeausschnitt weisen wir der Variablen $strDate
die Zeichenfolge "2022-06-11 09:22:40"
zu. Diese Zeichenfolge stellt ein Datum und eine Uhrzeit in einem Standardformat dar.
Danach führen wir eine Typumwandlung in ein DateTime
-Objekt mit [DateTime]$strDate
durch.
Ausgabe:
Mit dem DateTime
-Objekt sollten Sie in der Lage sein, beliebige DateTime
-Operationen durchzuführen. Wir hoffen, dass Ihnen dieses Tutorial hilft zu verstehen, wie Sie Zeichenfolgen in das DateTime
-Format in PowerShell konvertieren können.
Fazit
In diesem Tutorial haben wir die vielfältigen Möglichkeiten von PowerShell bei der Handhabung von DateTime
-Konversionen untersucht, wobei wir uns auf die Methode ParseExact
und ihre Vielseitigkeit beim Analysieren von Zeichenfolgen in DateTime
-Objekte konzentriert haben. Wir haben demonstriert, wie man einfache Datumsformate handhabt, spezifische kulturelle Kontexte einbezieht und Zeichenfolgen analysiert, die sowohl Datums- als auch Zeitkomponenten enthalten.
Darüber hinaus haben wir die einfache, aber effektive Technik der expliziten Typumwandlung behandelt, die eine schnelle Methode für standardisierte Datumsformate bietet. Unsere Beispiele haben die Bedeutung des Verständnisses und der korrekten Anwendung verschiedener Analysemethoden gezeigt, um eine genaue und effiziente Datum-Uhrzeit-Manipulation in PowerShell-Skripten sicherzustellen.