PowerShell:
Een datum uit een string parsen
Hoe te:
PowerShell maakt het parsen van datums vrij eenvoudig. Laten we eens kijken hoe we een string kunnen omzetten in een DateTime-object.
# Basis parsing met ParseExact
$dateString = "March 31, 2023"
$format = "MMMM dd, yyyy"
$parsedDate = [datetime]::ParseExact($dateString, $format, $null)
# Uitvoer
$parsedDate
Dit zal uitvoeren:
Vrijdag, 31 maart 2023 12:00:00 AM
Soms hebben strings verschillende formaten. Laten we dat aanpakken met Parse
standaard:
# Een datum met verschillende formaten parsen
$dateString = "2023-03-31T14:45:00"
$parsedDate = [datetime]::Parse($dateString)
# Uitvoer
$parsedDate
De uitvoer hier:
Vrijdag, 31 maart 2023 14:45:00 PM
Omgaan met cultuurspecifieke formaten? Gebruik ParseExact
met een specifieke cultuur:
# Cultuurspecifiek parsen
$dateString = "31/03/2023 16:45"
$format = "dd/MM/yyyy HH:mm"
$culture = [Globalization.CultureInfo]::GetCultureInfo("en-GB")
$parsedDate = [datetime]::ParseExact($dateString, $format, $culture)
# Uitvoer
$parsedDate
Die geeft als uitvoer:
Vrijdag, 31 maart 2023 16:45:00 PM
Diepgaande Duik
Nu voor wat ingewikkeldere details. Datumsparsing is altijd lastig geweest vanwege verschillende wereldwijde datumformaten. Vroeger had elke programmeertaal zijn eigen manier om met datums om te gaan, wat vaak tot inconsistenties leidde. PowerShell, als een nieuwere scripttaal, profiteerde van de DateTime-klasse van .NET, die robuuste parsingfuncties biedt.
Als alternatieven hebben we Get-Date
, dat ook een string in een DateTime-object kan parsen. Overweeg TryParseExact
en TryParse
als u het onverwachte verwacht en uitzonderingen van onparsbare strings wilt vermijden.
Laten we het hebben over implementatie. Datumsparsing is cultuurgevoelig, wat betekent dat het datumformaat per regio kan variëren. Daarom geven we cultuur- en formaatinformatie om de verwachte structuur van de datumstring vast te leggen.
Soms kom je zeer eigenaardige formaten tegen - hier komt de ParseExact
methode van pas, je Zwitsers zakmes voor datumsparsing. Het stelt je in staat om het exacte formaat op te geven dat je verwacht. Geen gokspelletjes hier.
Zie ook
Om je kennis uit te breiden, duik in deze bronnen:
- Officiële PowerShell-documentatie over Get-Date
- .NET-documentatie over DateTime.Parse
- Overwegingen omtrent globalisering en lokalisatie
Onthoud, datumsparsing is krachtig, dus hanteer het verstandig!