document some unsafe date parsing
This commit is contained in:
parent
400e5bf296
commit
3aa8613fa5
@ -74,13 +74,13 @@ daysInSpan (DateSpan (Just d1) (Just d2)) = Just $ diffDays d2 d1
|
||||
daysInSpan _ = Nothing
|
||||
|
||||
-- | Parse a period expression to an Interval and overall DateSpan using
|
||||
-- the provided reference date.
|
||||
-- the provided reference date, or raise an error.
|
||||
parsePeriodExpr :: Day -> String -> (Interval, DateSpan)
|
||||
parsePeriodExpr refdate expr = (interval,span)
|
||||
where (interval,span) = fromparse $ parsewith (periodexpr refdate) expr
|
||||
|
||||
-- | Convert a single smart date string to a date span using the provided
|
||||
-- reference date.
|
||||
-- reference date, or raise an error.
|
||||
spanFromSmartDateString :: Day -> String -> DateSpan
|
||||
spanFromSmartDateString refdate s = spanFromSmartDate refdate sdate
|
||||
where
|
||||
@ -121,7 +121,7 @@ showDay :: Day -> String
|
||||
showDay day = printf "%04d/%02d/%02d" y m d where (y,m,d) = toGregorian day
|
||||
|
||||
-- | Convert a smart date string to an explicit yyyy\/mm\/dd string using
|
||||
-- the provided reference date.
|
||||
-- the provided reference date, or raise an error.
|
||||
fixSmartDateStr :: Day -> String -> String
|
||||
fixSmartDateStr t s = either parseerror id $ fixSmartDateStrEither t s
|
||||
|
||||
@ -200,24 +200,25 @@ firstJust ms = case dropWhile (==Nothing) ms of
|
||||
[] -> Nothing
|
||||
(md:_) -> md
|
||||
|
||||
-- | Parse a couple of date-time string formats to a time type.
|
||||
parsedatetimeM :: String -> Maybe LocalTime
|
||||
parsedatetimeM s = firstJust [
|
||||
parseTime defaultTimeLocale "%Y/%m/%d %H:%M:%S" s,
|
||||
parseTime defaultTimeLocale "%Y-%m-%d %H:%M:%S" s
|
||||
]
|
||||
|
||||
-- | Parse a date-time string to a time type, or raise an error.
|
||||
parsedatetime :: String -> LocalTime
|
||||
parsedatetime s = fromMaybe (error $ "could not parse timestamp \"" ++ s ++ "\"")
|
||||
(parsedatetimeM s)
|
||||
|
||||
-- | Parse a date string to a time type, or raise an error.
|
||||
-- | Parse a couple of date string formats to a time type.
|
||||
parsedateM :: String -> Maybe Day
|
||||
parsedateM s = firstJust [
|
||||
parseTime defaultTimeLocale "%Y/%m/%d" s,
|
||||
parseTime defaultTimeLocale "%Y-%m-%d" s
|
||||
]
|
||||
|
||||
-- | Parse a date-time string to a time type, or raise an error.
|
||||
parsedatetime :: String -> LocalTime
|
||||
parsedatetime s = fromMaybe (error $ "could not parse timestamp \"" ++ s ++ "\"")
|
||||
(parsedatetimeM s)
|
||||
|
||||
-- | Parse a date string to a time type, or raise an error.
|
||||
parsedate :: String -> Day
|
||||
parsedate s = fromMaybe (error $ "could not parse date \"" ++ s ++ "\"")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user