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.