aeson に UTCTime 値を解析させることができません。1つをエンコードしてフィードバックしようとしましたが、うまくいきませんでした:
Prelude Data.Aeson Data.Time.Clock> getCurrentTime >>= (print . encode)
"\"2013-10-17T09:42:49.007Z\""
Prelude Data.Aeson Data.Time.Clock> decode "2013-10-17T09:42:49.007Z" :: Maybe UTCTime
Nothing
Prelude Data.Aeson Data.Time.Clock> decode "\"2013-10-17T09:42:49.007Z\"" :: Maybe UTCTime
Nothing
UTCTime 型の FromJSON インスタンスは次のとおりです ( ref )。
instance FromJSON UTCTime where
parseJSON = withText "UTCTime" $ \t ->
case parseTime defaultTimeLocale "%FT%T%QZ" (unpack t) of
Just d -> pure d
_ -> fail "could not parse ISO-8601 date"
ここにあるフォーマットの説明に従えば、すべて問題ないはずです。私は何が欠けていますか?