@@ -456,24 +456,31 @@ timeToUrlPiece :: FormatTime t => String -> t -> Text
456timeToUrlPiece fmt = T.pack . formatTime defaultTimeLocale (iso8601DateFormat (Just fmt))
456timeToUrlPiece fmt = T.pack . formatTime defaultTimeLocale (iso8601DateFormat (Just fmt))
459+-- >>> toUrlPiece $ TimeOfDay 14 55 23.1
461+instance ToHttpApiData TimeOfDay where
462+ toUrlPiece = T.pack . formatTime defaultTimeLocale "%H:%M:%S%Q"
463+ toEncodedUrlPiece = unsafeToEncodedUrlPiece
459−-- >>> toUrlPiece $ LocalTime (fromGregorian 2015 10 03) (TimeOfDay 14 55 01)
466+-- >>> toUrlPiece $ LocalTime (fromGregorian 2015 10 03) (TimeOfDay 14 55 21.687)
460−-- "2015-10-03T14:55:01"
467+-- "2015-10-03T14:55:21.687"
461instance ToHttpApiData LocalTime where
468instance ToHttpApiData LocalTime where
462− toUrlPiece = timeToUrlPiece "%H:%M:%S"
469+ toUrlPiece = timeToUrlPiece "%H:%M:%S%Q"
463 toEncodedUrlPiece = unsafeToEncodedUrlPiece
470 toEncodedUrlPiece = unsafeToEncodedUrlPiece
466−-- >>> toUrlPiece $ ZonedTime (LocalTime (fromGregorian 2015 10 03) (TimeOfDay 14 55 01)) utc
473+-- >>> toUrlPiece $ ZonedTime (LocalTime (fromGregorian 2015 10 03) (TimeOfDay 14 55 51.001)) utc
467−-- "2015-10-03T14:55:01+0000"
474+-- "2015-10-03T14:55:51.001+0000"
468instance ToHttpApiData ZonedTime where
475instance ToHttpApiData ZonedTime where
469− toUrlPiece = timeToUrlPiece "%H:%M:%S%z"
476+ toUrlPiece = timeToUrlPiece "%H:%M:%S%Q%z"
470 toEncodedUrlPiece = unsafeToEncodedUrlPiece
477 toEncodedUrlPiece = unsafeToEncodedUrlPiece
473−-- >>> toUrlPiece $ UTCTime (fromGregorian 2015 10 03) 864
480+-- >>> toUrlPiece $ UTCTime (fromGregorian 2015 10 03) 864.5
474−-- "2015-10-03T00:14:24Z"
481+-- "2015-10-03T00:14:24.5Z"
475instance ToHttpApiData UTCTime where
482instance ToHttpApiData UTCTime where
476− toUrlPiece = timeToUrlPiece "%H:%M:%SZ"
483+ toUrlPiece = timeToUrlPiece "%H:%M:%S%QZ"
477 toEncodedUrlPiece = unsafeToEncodedUrlPiece
484 toEncodedUrlPiece = unsafeToEncodedUrlPiece
479instance ToHttpApiData NominalDiffTime where
486instance ToHttpApiData NominalDiffTime where
@@ -580,7 +587,12 @@ instance FromHttpApiData L.Text where parseUrlPiece = Right . L.fromStrict
581-- >>> toGregorian <$> parseUrlPiece "2016-12-01"
588-- >>> toGregorian <$> parseUrlPiece "2016-12-01"
582-- Right (2016,12,1)
589-- Right (2016,12,1)
583−instance FromHttpApiData Day where parseUrlPiece = runAtto Atto.day
590+instance FromHttpApiData Day where parseUrlPiece = runAtto Atto.day
593+-- >>> parseUrlPiece "14:55:01.333" :: Either Text TimeOfDay
594+-- Right 14:55:01.333
595+instance FromHttpApiData TimeOfDay where parseUrlPiece = runAtto Atto.timeOfDay
586-- >>> parseUrlPiece "2015-10-03T14:55:01" :: Either Text LocalTime
598-- >>> parseUrlPiece "2015-10-03T14:55:01" :: Either Text LocalTime