Analysering av en dato fra en streng

Haskell:
Analysering av en dato fra en streng

Hvordan:

Rett ut av boksen tilbyr Haskell grunnleggende verktøy for å analysere datoer, men å dra nytte av biblioteker som time for kjernens funksjonalitet og date-parse eller time-parse for mer fleksibel parsing kan betydelig forenkle oppgaven.

Først, sørg for at du har time biblioteket tilgjengelig; det er ofte inkludert med GHC, men hvis du trenger å spesifisere det som en avhengighet, legg time til ditt prosjekts cabal-fil eller bruk cabal install time for å manuelt installere det.

import Data.Time.Format
import Data.Time.Clock
import System.Locale (defaultTimeLocale)

-- Bruker time-biblioteket til å analysere en dato i et standardformat
parseBasicDate :: String -> Maybe UTCTime
parseBasicDate = parseTimeM True defaultTimeLocale "%Y-%m-%d" 

Eksempel på bruk og utskrift:

main :: IO ()
main = print $ parseBasicDate "2023-04-01"

-- Utskrift: Just 2023-03-31 22:00:00 UTC

For mer komplekse scenarier, der du trenger å håndtere flere formater eller lokaliseringer, kan tredjepartsbiblioteker som date-parse være mer praktisk:

Forutsatt at du har lagt til date-parse i dine avhengigheter og installert det, her er hvordan du kan bruke det:

import Data.Time.Calendar
import Text.Date.Parse (parseDate)

-- Å analysere en datostreng med date-parse-biblioteket som støtter flere formater
parseFlexibleDate :: String -> Maybe Day
parseFlexibleDate = parseDate

Eksempel på bruk med date-parse:

main :: IO ()
main = print $ parseFlexibleDate "April 1, 2023"

-- Utskrift: Just 2023-04-01

Hvert eksempel demonstrerer den grunnleggende tilnærmingen for å ta en streng og gjøre den om til et brukbart datoobjekt i Haskell. Valget mellom å bruke time bibliotekets innebygde funksjoner og å velge en tredjepartsløsning som date-parse avhenger av de spesifikke behovene til applikasjonen din, som for eksempel omfanget av inngangsformater du trenger å håndtere.