在 Haskell 中解析 YYYY-MM-DD 形式的日期字符串

Geo*_*rge 2 haskell

Haskell 有没有办法从“YYYY-MM-DD”格式的字符串中解析日期?也就是说,类似的东西parseDateFromString 2016-10-20会以某种常用的 Haskell 日期格式返回日期。

che*_*ner 5

Data.Time提供了parseTimeM,这有点笨拙。我可能会忽略一个更简单的选择。

> import Data.Time
> parseTimeM False defaultTimeLocale "%Y-%m-%d" "2016-10-20" :: Maybe UniversalTime
Just 2016-10-20 00:00:00
Run Code Online (Sandbox Code Playgroud)

返回类型是相当开放的。您可以将值返回给任何 monad;Maybe似乎是反映答案或解析字符串失败的一个很好的例子。包装的类型Maybe是类型类的任何实例ParseTimeUniversalTime是在库中定义的。