]> gitweb @ CieloNegro.org - time-http.git/blob - Data/Time/Asctime/Internal.hs
Changed some module's name
[time-http.git] / Data / Time / Asctime / Internal.hs
1 {-# LANGUAGE FlexibleContexts #-}
2 module Data.Time.Asctime.Internal
3     ( asctime
4     )
5     where
6 import Control.Monad
7 import Data.Fixed
8 import Data.Time
9 import Data.Time.Calendar.WeekDate
10 import Data.Time.HTTP.Common
11
12 -- |This is a parsec parser for ANSI C's asctime() format.
13 asctime :: Stream s m Char => ParsecT s u m LocalTime
14 asctime = do weekDay <- shortWeekDayNameP
15              _       <- string ", "
16              month   <- shortMonthNameP
17              _       <- char ' '
18              day     <- read2
19              _       <- char ' '
20              hour    <- read2
21              _       <- char ':'
22              minute  <- read2
23              _       <- char ':'
24              second  <- read2
25              _       <- char ' '
26              year    <- read4
27
28              gregDay <- assertGregorianDateIsGood year month day
29              _       <- assertWeekDayIsGood weekDay gregDay
30              tod     <- assertTimeOfDayIsGood hour minute second
31
32              return (LocalTime gregDay tod)