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
$parsedDateDit zal uitvoeren:
Vrijdag, 31 maart 2023 12:00:00 AMSoms 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
$parsedDateDe uitvoer hier:
Vrijdag, 31 maart 2023 14:45:00 PMOmgaan 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
$parsedDateDie geeft als uitvoer:
Vrijdag, 31 maart 2023 16:45:00 PMDiepgaande 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!