Haskell:
Analyser une date depuis une chaîne de caractères
Comment faire :
De base, Haskell offre des outils basiques pour l’analyse des dates, mais l’utilisation de bibliothèques comme time
pour la fonctionnalité de base et date-parse
ou time-parse
pour une analyse plus flexible peut considérablement simplifier la tâche.
Tout d’abord, assurez-vous d’avoir la bibliothèque time
disponible ; elle est souvent incluse avec GHC, mais si vous devez la spécifier comme dépendance, ajoutez time
au fichier cabal de votre projet ou utilisez cabal install time
pour l’installer manuellement.
import Data.Time.Format
import Data.Time.Clock
import System.Locale (defaultTimeLocale)
-- Utiliser la bibliothèque time pour analyser une date dans un format standard
parseBasicDate :: String -> Maybe UTCTime
parseBasicDate = parseTimeM True defaultTimeLocale "%Y-%m-%d"
Exemple d’utilisation et sortie :
main :: IO ()
main = print $ parseBasicDate "2023-04-01"
-- Sortie : Just 2023-03-31 22:00:00 UTC
Pour des scénarios plus complexes, où vous devez gérer plusieurs formats ou localités, les bibliothèques tierces comme date-parse
peuvent être plus pratiques :
Si vous avez ajouté date-parse
à vos dépendances et l’avez installé, voici comment vous pourriez l’utiliser :
import Data.Time.Calendar
import Text.Date.Parse (parseDate)
-- Analyser une chaîne de date avec la bibliothèque date-parse supporte plusieurs formats
parseFlexibleDate :: String -> Maybe Day
parseFlexibleDate = parseDate
Exemple d’utilisation avec date-parse
:
main :: IO ()
main = print $ parseFlexibleDate "Avril 1, 2023"
-- Sortie : Just 2023-04-01
Chaque exemple démontre l’approche fondamentale pour prendre une chaîne de caractères et la transformer en un objet date utilisable en Haskell. Le choix entre utiliser les fonctions intégrées de la bibliothèque time
et opter pour une solution tierce comme date-parse
dépend des besoins spécifiques de votre application, tels que l’éventail de formats d’entrée que vous devez gérer.