Wie man Datetime mit ParseExact in PowerShell parst

  1. Verwenden Sie die Methode ParseExact, um DateTime in PowerShell zu analysieren
  2. Verwenden Sie die explizite Typumwandlung, um DateTime in PowerShell zu analysieren
  3. Fazit
Wie man Datetime mit ParseExact in PowerShell parst

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 kann null 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:

powershell datetime parseexact - ausgabe 1

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:

powershell datetime parseexact - ausgabe 2

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:

powershell datetime parseexact - ausgabe 3

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:

powershell datetime parseexact - ausgabe 4

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.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Verwandter Artikel - PowerShell DateTime