更正格式字符串以解析 Haskell 中的日期时间
Correct format string to parse a date time in Haskell
我正在尝试使用 Haskell 的 Date.Time
包解析 datetime
,但我的格式似乎不正确。
以下是我尝试解析的一些日期示例:
2015-01-01T01:00:00.000Z
2015-01-11T03:00:00.000Z
2015-01-11T03:00:00.000Z
我有这样的功能:
parseStringToDateTime :: String -> UTCTime
parseStringToDateTime = parseTimeOrError False defaultTimeLocale "%Y-%m-%d %HH:%MM:%SS"
但这不太正确,我收到运行时错误。
像这样解析 datetime
的正确格式字符串是什么?
使用 time-1.9.3 我设法像这样格式化你的日期时间字符串:
λ> import Date.Time
λ> import Data.Time.Format.ISO8601 -- I think it's Date.Time.Format in newer versions
λ> formatParseM (iso8601Format @UTCTime) "2015-01-11T03:00:00.000Z" >>= print
2015-01-11 03:00:00 UTC
现在我们可以为您的用例复制 [=12=]:
λ> parseStringToDateTime s = maybe (error $ "bad date-time string " ++ s) id $ formatParseM (iso8601Format @UTCTime) s
λ> parseStringToDateTime "2015-01-11T03:00:00.000Z"
2015-01-11 03:00:00 UTC
λ> parseStringToDateTime "BAD"
*** Exception: bad date-time string BAD
我正在尝试使用 Haskell 的 Date.Time
包解析 datetime
,但我的格式似乎不正确。
以下是我尝试解析的一些日期示例:
2015-01-01T01:00:00.000Z
2015-01-11T03:00:00.000Z
2015-01-11T03:00:00.000Z
我有这样的功能:
parseStringToDateTime :: String -> UTCTime
parseStringToDateTime = parseTimeOrError False defaultTimeLocale "%Y-%m-%d %HH:%MM:%SS"
但这不太正确,我收到运行时错误。
像这样解析 datetime
的正确格式字符串是什么?
使用 time-1.9.3 我设法像这样格式化你的日期时间字符串:
λ> import Date.Time
λ> import Data.Time.Format.ISO8601 -- I think it's Date.Time.Format in newer versions
λ> formatParseM (iso8601Format @UTCTime) "2015-01-11T03:00:00.000Z" >>= print
2015-01-11 03:00:00 UTC
现在我们可以为您的用例复制 [=12=]:
λ> parseStringToDateTime s = maybe (error $ "bad date-time string " ++ s) id $ formatParseM (iso8601Format @UTCTime) s
λ> parseStringToDateTime "2015-01-11T03:00:00.000Z"
2015-01-11 03:00:00 UTC
λ> parseStringToDateTime "BAD"
*** Exception: bad date-time string BAD