我正在嘗試使用 Haskell 的 Date.Time 包來決議 datetime,但是我似乎沒有掌握正確的格式。
下面是我試圖決議的幾個日期的例子:
2015-0101T01:00:00.000Z
2015-0111T03:00:00.000Z
2015-0111T03:00:00.000Z
我有一個函式,比如:
parseStringToDateTime :: String -> UTCTime[/span
parseStringToDateTime = parseTimeOrError False defaultTimeLocale "%Y-%m-%d %HH:%MM:%SS"
但是這并不完全正確,我得到了一個運行時錯誤。
什么是正確的格式字串來決議像這樣的datetime?
uj5u.com熱心網友回復:
使用time-1.9.3,我設法把你的日期時間字串格式化成這樣:
λ> import Date.Time
λ> import Data.Time.Format.ISO8601 --我認為在新版本中是Date.Time.Format。
λ> formatParseM (iso8601Format @UTCTime) "2015-01-11T03:00:00.000Z" >>= print
2015-01-11 03: 00: 00 UTC
現在我們可以為你的用例復制parseTimeOrError:
λ> 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"/span>
*** Exception: bad date-time string BAD
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/316930.html
標籤:
