Haskell:
Einen Datum aus einem String analysieren

Wie:

Out of the Box bietet Haskell grundlegende Werkzeuge für das Parsen von Daten an, aber das Nutzen von Bibliotheken wie time für die Kernfunktionalität und date-parse oder time-parse für flexibleres Parsen kann die Aufgabe erheblich vereinfachen.

Stellen Sie zunächst sicher, dass Sie die time-Bibliothek zur Verfügung haben; sie ist oft bei GHC enthalten, aber wenn Sie sie als Abhängigkeit angeben müssen, fügen Sie time zur cabal-Datei Ihres Projekts hinzu oder verwenden Sie cabal install time, um sie manuell zu installieren.

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

-- Verwendung der time-Bibliothek zum Parsen eines Datums in einem Standardformat
parseBasicDate :: String -> Maybe UTCTime
parseBasicDate = parseTimeM True defaultTimeLocale "%Y-%m-%d" 

Beispielverwendung und Ausgabe:

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

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

Für komplexere Szenarien, in denen Sie mehrere Formate oder Lokalitäten behandeln müssen, können Bibliotheken von Drittanbietern wie date-parse bequemer sein:

Angenommen, Sie haben date-parse zu Ihren Abhängigkeiten hinzugefügt und installiert, hier ist, wie Sie es verwenden könnten:

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

-- Das Parsen eines Datumsstrings mit der date-parse-Bibliothek unterstützt mehrere Formate
parseFlexibleDate :: String -> Maybe Day
parseFlexibleDate = parseDate

Beispielverwendung mit date-parse:

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

-- Ausgabe: Just 2023-04-01

Jedes Beispiel demonstriert den grundlegenden Ansatz, einen String in ein nutzbares Datumobjekt in Haskell umzuwandeln. Die Wahl zwischen der Verwendung der integrierten Funktionen der time-Bibliothek und der Option für eine Lösung von Drittanbietern wie date-parse hängt von den spezifischen Bedürfnissen Ihrer Anwendung ab, wie z.B. dem Spektrum der Eingabeformate, die Sie behandeln müssen.