@@ -119,7 +119,6 @@ import Data.String
119
119
import qualified Data.Text as T
120
120
import qualified Data.Text.Encoding as T
121
121
import Data.Time.Clock (UTCTime , getCurrentTime , utctDay )
122
- import Data.Time.Format (formatTime , parseTime )
123
122
import Data.Typeable
124
123
125
124
import qualified Test.QuickCheck as Q
@@ -129,8 +128,9 @@ import qualified Text.Parser.Char as P
129
128
import qualified Text.Parser.Combinators as P
130
129
131
130
#if MIN_VERSION_time(1,5,0)
132
- import Data.Time.Format
131
+ import Data.Time.Format ( defaultTimeLocale , formatTime , parseTimeM )
133
132
#else
133
+ import Data.Time.Format (formatTime , parseTime )
134
134
import System.Locale
135
135
#endif
136
136
@@ -342,8 +342,12 @@ parseHttpDate s =
342
342
<|> p " %Y-%m-%dT%H:%M:%S%QZ" s -- iso 8601
343
343
<|> p " %Y-%m-%dT%H:%M:%S%Q%Z" s -- iso 8601
344
344
where
345
+ #if MIN_VERSION_time(1,5,0)
346
+ p = parseTimeM True defaultTimeLocale
347
+ #else
345
348
p = parseTime defaultTimeLocale
346
349
#endif
350
+ #endif
347
351
348
352
-- | Normalization of the date header breaks the AWS test suite, since the
349
353
-- tests in that test suite use an invalid date.
@@ -451,9 +455,14 @@ parseCredentialScope = CredentialScope
451
455
where
452
456
time = do
453
457
str <- P. count 8 P. digit
454
- case parseTime defaultTimeLocale credentialScopeDateFormat str of
458
+ case p credentialScopeDateFormat str of
455
459
Nothing -> fail $ " failed to parse credential scope date: " <> str
456
460
Just t -> return t
461
+ #if MIN_VERSION_time(1,5,0)
462
+ p = parseTimeM True defaultTimeLocale
463
+ #else
464
+ p = parseTime defaultTimeLocale
465
+ #endif
457
466
458
467
terminationString :: IsString a => a
459
468
terminationString = " aws4_request"
0 commit comments