Analyser une date depuis une chaîne de caractères

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.