summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoe <joe@jerkface.net>2014-05-09 20:29:30 -0400
committerjoe <joe@jerkface.net>2014-05-09 20:29:30 -0400
commitaf9948e0432b93a4c18c6318dff4ce25b00f0991 (patch)
treeb4f237cff9b4b50ea07dcb32afe477883f576dd6
parentfdae88dea011b7e000d68b8b82ebf682f09b3947 (diff)
dateParser
-rw-r--r--TimeUtil.hs13
1 files changed, 13 insertions, 0 deletions
diff --git a/TimeUtil.hs b/TimeUtil.hs
index a4391e9..77e85bf 100644
--- a/TimeUtil.hs
+++ b/TimeUtil.hs
@@ -17,6 +17,9 @@ import Control.Applicative
17import Data.Maybe 17import Data.Maybe
18import Data.Char 18import Data.Char
19import qualified Data.ByteString.Char8 as S 19import qualified Data.ByteString.Char8 as S
20import qualified Data.ByteString.Lazy.Char8 as L
21
22import ScanningParser
20 23
21class IsTime a where 24class IsTime a where
22 fromZonedTime :: ZonedTime -> a 25 fromZonedTime :: ZonedTime -> a
@@ -76,6 +79,16 @@ parseRFC2822 str =
76now :: IO Integer 79now :: IO Integer
77now = floor <$> Data.Time.Clock.POSIX.getPOSIXTime 80now = floor <$> Data.Time.Clock.POSIX.getPOSIXTime
78 81
82dateParser :: ScanningParser L.ByteString UTCTime
83dateParser = ScanningParser ffst pbdy
84 where
85 ffst bs = do
86 let (h,bs') = L.splitAt 6 bs
87 if h=="Date: "
88 then return $ parseRFC2822 $ L.toStrict bs'
89 else Nothing
90 pbdy date xs = (date,xs)
91
79{- 92{-
80main = do 93main = do
81 nowtime <- now 94 nowtime <- now