parseTime :: ParseTime t => TimeLocale -> String -> String -> Maybe t
Haskell - parseTime: wie ein Datum-String des Format und Gültigkeit prüfen
Diese Funktion überprüft das Format es drittes Argument (Datum string) mit ihrem zweiten (Formatstring, zum Beispiel ‚YYYY-MM-DD '). Es prüft jedoch nicht die Gültigkeit des Datums - stattdessen wird auf das nächstliegende gültige Datum gerundet.
import System.Locale
import Data.Time
parseTime defaultTimeLocale "%Y-%m-%d" "2015-01-99" :: Maybe Day
Just 2015-01-31
Was ich möchte, ist ein gültiges Datum oder Fehler zu erhalten.
Als Hack, könnten Sie analysieren/unparse und prüfen Sie, ob Sie Ihre Zeichenfolge zurück bekam. – chi
Danke, aber das wirft ein Problem auf, zum Beispiel liefert parseTime den gleichen Wert für "2015-1-31" und "2015-01-31", also muss eine Zeichenfolge geändert werden. –