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.