on master help sign in
issue 175: format string priority for ZonedTime
d219e35Matthias Fischmann
Data/Aeson/Types/Instances.hs+7−4
@@ -68,6 +68,7 @@ import Data.Foldable (toList)
68import Data.Functor.Identity (Identity(..))
68import Data.Functor.Identity (Identity(..))
69import Data.Hashable (Hashable(..))
69import Data.Hashable (Hashable(..))
70import Data.Int (Int8, Int16, Int32, Int64)
70import Data.Int (Int8, Int16, Int32, Int64)
71+import Data.List (nub)
71import Data.Maybe (fromMaybe)
72import Data.Maybe (fromMaybe)
72import Data.Monoid (Dual(..), First(..), Last(..), mappend)
73import Data.Monoid (Dual(..), First(..), Last(..), mappend)
73import Data.Ratio (Ratio, (%), numerator, denominator)
74import Data.Ratio (Ratio, (%), numerator, denominator)
@@ -516,10 +517,12 @@ instance FromJSON ZonedTime where
516 Just d -> pure d
517 Just d -> pure d
517 Nothing -> empty
518 Nothing -> empty
518 tryFormats = foldr1 (<|>) . map tryFormat
519 tryFormats = foldr1 (<|>) . map tryFormat
519− alternateFormats =
520+ alternateFormats = nub $
520− dateTimeFmt defaultTimeLocale :
521+ "%FT%T%QZ" :
522+ "%FT%T%Q%z" :
521− distributeList ["%Y", "%Y-%m", "%F"]
523+ distributeList ["%F", "%Y", "%Y-%m"]
522− ["T%R", "T%T", "T%T%Q", "T%T%QZ", "T%T%Q%z"]
524+ ["T%T%Q", "T%R", "T%T", "T%T%QZ", "T%T%Q%z"] ++
525+ [dateTimeFmt defaultTimeLocale]
523
526
524 distributeList xs ys =
527 distributeList xs ys =
525 foldr (\x -> (++ distribute x ys)) [] xs
528 foldr (\x -> (++ distribute x ys)) [] xs