Haskell:
Analisando uma data a partir de uma string
Como Fazer:
De imediato, Haskell oferece ferramentas básicas para análise de datas, mas aproveitar bibliotecas como time para funcionalidades principais e date-parse ou time-parse para uma análise mais flexível pode significativamente simplificar a tarefa.
Primeiro, garanta que você tem a biblioteca time disponível; ela normalmente está incluída com GHC, mas se precisar especificá-la como uma dependência, adicione time ao arquivo cabal do seu projeto ou use cabal install time para instalá-la manualmente.
import Data.Time.Format
import Data.Time.Clock
import System.Locale (defaultTimeLocale)
-- Usando a biblioteca time para analisar uma data em um formato padrão
parseBasicDate :: String -> Maybe UTCTime
parseBasicDate = parseTimeM True defaultTimeLocale "%Y-%m-%d" Exemplo de uso e saída:
main :: IO ()
main = print $ parseBasicDate "2023-04-01"
-- Saída: Just 2023-03-31 22:00:00 UTCPara cenários mais complexos, onde é necessário lidar com múltiplos formatos ou localidades, bibliotecas de terceiros como date-parse podem ser mais convenientes:
Assumindo que você adicionou date-parse às suas dependências e a instalou, eis como você poderia usá-la:
import Data.Time.Calendar
import Text.Date.Parse (parseDate)
-- Analisando uma string de data com a biblioteca date-parse suporta múltiplos formatos
parseFlexibleDate :: String -> Maybe Day
parseFlexibleDate = parseDateExemplo de uso com date-parse:
main :: IO ()
main = print $ parseFlexibleDate "April 1, 2023"
-- Saída: Just 2023-04-01Cada exemplo demonstra a abordagem fundamental para pegar uma string e transformá-la em um objeto de data utilizável em Haskell. A escolha entre usar as funções integradas da biblioteca time e optar por uma solução de terceiros como date-parse depende das necessidades específicas da sua aplicação, como a variedade de formatos de entrada que você precisa manusear.