@@ -499,8 +499,11 @@ instance FromJSON ZonedTime where
499499 parseJSON v = typeMismatch "ZonedTime" v
500500
501501instance ToJSON UTCTime where
502− toJSON t = String (pack (take 23 str ++ "Z"))
503− where str = formatTime defaultTimeLocale "%FT%T%Q" t
502+ toJSON t = String (pack (str ++ z : "Z"))
503+ where (str,(x:y:_)) = splitAt 22 $
504+ formatTime defaultTimeLocale "%FT%T.%q" t
505+ z | y < '5' = x
506+ | otherwise = succ x
504507 {-# INLINE toJSON #-}
505508
506509instance FromJSON UTCTime where