Een datum uit een string parsen

Ruby:
Een datum uit een string parsen

Hoe te:

Ruby staat voor je klaar met zijn Date-bibliotheek, die het omzetten van tekenreeksen naar data zo makkelijk maakt als appeltaart. Vergeet alleen niet require 'date' te doen voordat je begint.

require 'date'

# Parseer een datum (ISO-formaat) uit een tekenreeks
datum_tekenreeks = "2023-04-01"
geparseerde_datum = Date.parse(datum_tekenreeks)
puts geparseerde_datum
# => 2023-04-01

# Wat als ons formaat ontspoort? Probeer dit.
begin
  aangepaste_datum = Date.strptime('03/31/2023', '%m/%d/%Y')
  puts aangepaste_datum
rescue ArgumentError
  puts "Dat is geen geldig datumformaat, maat."
end
# => 2023-03-31

Diepe Duik

Vroeger was Ruby minder vergevingsgezind met datumformaten. Coders moesten handmatig worstelen met tekenreeksen om data te onttrekken. Nu speurt Date.parse automatisch de meest voorkomende datumformaten op, en als het in de war raakt, laat Date.strptime je het exacte formaat specificeren om misinterpretaties te vermijden.

Alternatief-wise, als je te maken hebt met meer complexe datum-tijdgegevens, is DateTime misschien je van pas, vooral voor het ontleden van tijden ook. Bovendien, voor degenen die buiten de standaardbibliotheek van Ruby spelen, is er de Chronic-gem door de slimme mensen bij GitHub, die een hoop natuurlijke taal-datumuitdrukkingen begrijpt.

Onder al deze eenvoud wordt het ontleden van Ruby daadwerkelijk aangedreven door datumformaat sjablonen die verschillende delen van de tekenreeks met datum matchen met de overeenkomstige datumelementen (jaar, maand, dag, enz.). Dus wanneer je tekenreeks niet overeenkomt met het verwachte patroon, moet je Ruby een seintje geven met strptime en de juiste formaatdirectieven.

Zie Ook