Analisi di una data da una stringa

Haskell:
Analisi di una data da una stringa

Come fare:

Di base, Haskell offre strumenti semplici per l’analisi delle date, ma sfruttare librerie come time per la funzionalità di base e date-parse o time-parse per un’analisi più flessibile, può semplificare notevolmente il compito.

Innanzitutto, assicurati di avere la libreria time disponibile; è spesso inclusa con GHC, ma se devi specificarla come dipendenza, aggiungi time al file cabal del tuo progetto o usa cabal install time per installarla manualmente.

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

-- Usando la libreria time per analizzare una data in un formato standard
parseBasicDate :: String -> Maybe UTCTime
parseBasicDate = parseTimeM True defaultTimeLocale "%Y-%m-%d" 

Esempio di utilizzo e output:

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

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

Per scenari più complessi, dove è necessario gestire formati o località multipli, librerie di terze parti come date-parse possono essere più convenienti:

Supponendo che tu abbia aggiunto date-parse alle tue dipendenze e lo abbia installato, ecco come potresti usarlo:

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

-- Analizzando una stringa di data con la libreria date-parse supporta formati multipli
parseFlexibleDate :: String -> Maybe Day
parseFlexibleDate = parseDate

Esempio di utilizzo con date-parse:

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

-- Output: Just 2023-04-01

Ogni esempio dimostra l’approccio fondamentale per trasformare una stringa in un oggetto data utilizzabile in Haskell. La scelta tra l’uso delle funzioni integrate della libreria time e l’opzione per una soluzione di terze parti come date-parse dipende dalle esigenze specifiche della tua applicazione, come la gamma di formati di input che devi gestire.