lib: fix ghc 8-related date issues (#352)
Our null date is now 0000/01/01 instead of 0000/00/00.
This commit is contained in:
parent
f3bf98bfae
commit
ad3c5dfb4d
@ -550,13 +550,25 @@ parsedateM s = firstJust [
|
|||||||
--
|
--
|
||||||
-- >>> parsedate "2008/02/03"
|
-- >>> parsedate "2008/02/03"
|
||||||
-- 2008-02-03
|
-- 2008-02-03
|
||||||
-- >>> parsedate "2008/02/03/"
|
|
||||||
-- *** Exception: could not parse date "2008/02/03/"
|
|
||||||
-- >>> parsedate "2008/02/30" -- invalid dates may get silently adjusted
|
|
||||||
-- 2008-02-29
|
|
||||||
parsedate :: String -> Day
|
parsedate :: String -> Day
|
||||||
parsedate s = fromMaybe (error' $ "could not parse date \"" ++ s ++ "\"")
|
parsedate s = fromMaybe (error' $ "could not parse date \"" ++ s ++ "\"")
|
||||||
(parsedateM s)
|
(parsedateM s)
|
||||||
|
-- doctests I haven't been able to make compatible with both GHC 7 and 8
|
||||||
|
-- -- >>> parsedate "2008/02/03/"
|
||||||
|
-- -- *** Exception: could not parse date "2008/02/03/"
|
||||||
|
-- #if MIN_VERSION_base(4,9,0)
|
||||||
|
-- -- ...
|
||||||
|
-- #endif
|
||||||
|
-- #if MIN_VERSION_time(1,6,0)
|
||||||
|
-- -- >>> parsedate "2008/02/30" -- with time >= 1.6, invalid dates are rejected
|
||||||
|
-- -- *** Exception: could not parse date "2008/02/30"
|
||||||
|
-- #if MIN_VERSION_base(4,9,0)
|
||||||
|
-- -- ...
|
||||||
|
-- #endif
|
||||||
|
-- #else
|
||||||
|
-- -- >>> parsedate "2008/02/30" -- with time < 1.6, they are silently adjusted
|
||||||
|
-- -- 2008-02-29
|
||||||
|
-- #endif
|
||||||
|
|
||||||
-- | Parse a time string to a time type using the provided pattern, or
|
-- | Parse a time string to a time type using the provided pattern, or
|
||||||
-- return the default.
|
-- return the default.
|
||||||
@ -855,4 +867,4 @@ nulldatespan :: DateSpan
|
|||||||
nulldatespan = DateSpan Nothing Nothing
|
nulldatespan = DateSpan Nothing Nothing
|
||||||
|
|
||||||
nulldate :: Day
|
nulldate :: Day
|
||||||
nulldate = parsedate "0000/00/00"
|
nulldate = fromGregorian 0 1 1
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user