on 3a76afa help sign in
22 lines 672 B history raw
1module TutorialD.Interpreter.DataTypes.DateTime where
2import Text.Parsec
3import ProjectM36.Base
4import Text.Parsec.String
5import TutorialD.Interpreter.Base
6import Data.Time.Clock
7import Data.Time.Format
9dateTimeAtomP :: Parser Atom
10dateTimeAtomP = do
11 dateTime' <- try $ do
12 dateTime <- dateTimeStringP
13 reserved "::datetime"
14 return dateTime
15 return $ Atom dateTime'
17dateTimeStringP :: Parser UTCTime
18dateTimeStringP = do
19 dateTimeString <- quotedString
20 case parseTimeM False defaultTimeLocale "%Y-%m-%d %H:%M:%S" dateTimeString of
21 Just utctime -> return $ (utctime :: UTCTime)
22 Nothing -> fail $ "Failed to parse datetime from " ++ dateTimeString