diff options
author | joe <joe@jerkface.net> | 2014-05-09 20:29:30 -0400 |
---|---|---|
committer | joe <joe@jerkface.net> | 2014-05-09 20:29:30 -0400 |
commit | af9948e0432b93a4c18c6318dff4ce25b00f0991 (patch) | |
tree | b4f237cff9b4b50ea07dcb32afe477883f576dd6 | |
parent | fdae88dea011b7e000d68b8b82ebf682f09b3947 (diff) |
dateParser
-rw-r--r-- | TimeUtil.hs | 13 |
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 | |||
17 | import Data.Maybe | 17 | import Data.Maybe |
18 | import Data.Char | 18 | import Data.Char |
19 | import qualified Data.ByteString.Char8 as S | 19 | import qualified Data.ByteString.Char8 as S |
20 | import qualified Data.ByteString.Lazy.Char8 as L | ||
21 | |||
22 | import ScanningParser | ||
20 | 23 | ||
21 | class IsTime a where | 24 | class IsTime a where |
22 | fromZonedTime :: ZonedTime -> a | 25 | fromZonedTime :: ZonedTime -> a |
@@ -76,6 +79,16 @@ parseRFC2822 str = | |||
76 | now :: IO Integer | 79 | now :: IO Integer |
77 | now = floor <$> Data.Time.Clock.POSIX.getPOSIXTime | 80 | now = floor <$> Data.Time.Clock.POSIX.getPOSIXTime |
78 | 81 | ||
82 | dateParser :: ScanningParser L.ByteString UTCTime | ||
83 | dateParser = 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 | {- |
80 | main = do | 93 | main = do |
81 | nowtime <- now | 94 | nowtime <- now |