-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Parse and format HTTP/1.1 Date and Time string -- -- This package provides functionalities to parse and format various Date -- and Time formats allowed in HTTP/1.1 (RFC 2616). @package time-http @version 0.1 module Data.Time.RFC733.Parsec -- | This is a parsec parser for RFC 733 date and time strings. rfc733DateAndTime :: (Stream s m Char) => ParsecT s u m ZonedTime module Data.Time.RFC822.Parsec -- | This is a parsec parser for RFC 822 date and time strings. rfc822DateAndTime :: (Stream s m Char) => ParsecT s u m ZonedTime -- | This module provides functions to parse and format RFC 822 date and -- time formats. -- -- The syntax is as follows: -- --
-- date-time ::= [ day-of-week ", " ] date SP time SP zone
-- day-of-week ::= "Mon" | "Tue" | "Wed" | "Thu"
-- | "Fri" | "Sat" | "Sun"
-- date ::= day SP month SP year
-- day ::= 2DIGIT
-- year ::= 2DIGIT ; Yes, only 2 digits.
-- month ::= "Jan" | "Feb" | "Mar" | "Apr"
-- | "May" | "Jun" | "Jul" | "Aug"
-- | "Sep" | "Oct" | "Nov" | "Dec"
-- time ::= hour ":" minute [ ":" second ]
-- hour ::= 2DIGIT
-- minute ::= 2DIGIT
-- second ::= 2DIGIT
-- zone ::= "UT" | "GMT" ; Universal Time
-- | "EST" | "EDT" ; Eastern : -5 / -4
-- | "CST" | "CDT" ; Central : -6 / -5
-- | "MST" | "MDT" ; Mountain: -7 / -6
-- | "PST" | "PDT" ; Pacific : -8 / -7
-- | "Z" ; UT
-- | "A" ; -1
-- | "M" ; -12
-- | "N" ; +1
-- | "Y" ; +12
-- | ("+" | "-") 4DIGIT ; Local diff: HHMM
--
module Data.Time.RFC822
-- | Format a ZonedTime in RFC 822.
format :: ZonedTime -> String
-- | Parse an RFC 822 date and time string. When the string can't be
-- parsed, it returns Nothing.
parse :: String -> Maybe ZonedTime
module Data.Time.RFC1123.Parsec
-- | This is a parsec parser for RFC 1123 date and time strings.
rfc1123DateAndTime :: (Stream s m Char) => ParsecT s u m ZonedTime
-- | This module provides functions to parse and format RFC 1123 date and
-- time formats.
--
-- The format is basically same as RFC 822, but the syntax for
-- date is changed from:
--
-- -- year ::= 2DIGIT ---- -- to: -- --
-- year ::= 4DIGIT --module Data.Time.RFC1123 -- | Format a ZonedTime in RFC 1123. format :: ZonedTime -> String -- | Parse an RFC 1123 date and time string. When the string can't be -- parsed, it returns Nothing. parse :: String -> Maybe ZonedTime module Data.Time.Asctime.Parsec -- | This is a parsec parser for ANSI C's asctime() format. asctime :: (Stream s m Char) => ParsecT s u m LocalTime -- | This module provides functions for ANSI C's asctime() format. -- -- ANSI C's asctime() format looks like: -- --
-- Wdy Mon DD HH:MM:SS YYYY ---- -- The exact syntax is as follows: -- --
-- date-time ::= wday SP month SP day SP time SP year -- wday ::= "Mon" | "Tue" | "Wed" | "Thu" -- | "Fri" | "Sat" | "Sun" -- month ::= "Jan" | "Feb" | "Mar" | "Apr" -- | "May" | "Jun" | "Jul" | "Aug" -- | "Sep" | "Oct" | "Nov" | "Dec" -- day ::= 2DIGIT -- time ::= 2DIGIT ':' 2DIGIT [':' 2DIGIT] -- year ::= 4DIGIT ---- -- As you can see, it has no time zone info. Data.Time.HTTP will -- treat it as UTC. module Data.Time.Asctime -- | Format a LocalTime in the ANSI C's asctime() way. format :: LocalTime -> String -- | Parse an ANSI C's asctime() format to LocalTime. When the -- string can't be parsed, it returns Nothing. parse :: String -> Maybe LocalTime module Data.Time.HTTP.Parsec -- | This is a parsec parser for date and time formats allowed in HTTP/1.1 -- (RFC 2616). rfc2616DateAndTime :: (Stream s m Char) => ParsecT s u m UTCTime -- | This module provides functions to parse and format HTTP/1.1 date and -- time formats. -- -- The HTTP/1.1 specification (RFC 2616) says that HTTP/1.1 clients and -- servers which parse the date value MUST accept all the following -- formats, though they MUST only generate the RFC 1123 format for -- representing HTTP-date values in header fields: -- --
-- Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 -- Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036 -- Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format ---- -- It also says that all HTTP date/time stamps MUST be represented in -- Greenwich Mean Time (GMT), without exception. For the purposes of -- HTTP, GMT is exactly equal to UTC (Coordinated Universal Time). This -- is indicated in the first two formats by the inclusion of -- "GMT" as the three-letter abbreviation for time zone, and -- MUST be assumed when reading the asctime format. -- --
-- HTTP-date = rfc1123-date | rfc850-date | asctime-date -- rfc1123-date = wkday "," SP date1 SP time SP "GMT" -- rfc850-date = weekday "," SP date2 SP time SP "GMT" -- asctime-date = wkday SP date3 SP time SP 4DIGIT -- date1 = 2DIGIT SP month SP 4DIGIT -- ; day month year (e.g., 02 Jun 1982) -- date2 = 2DIGIT "-" month "-" 2DIGIT -- ; day-month-year (e.g., 02-Jun-82) -- date3 = month SP ( 2DIGIT | ( SP 1DIGIT )) -- ; month day (e.g., Jun 2) -- time = 2DIGIT ":" 2DIGIT ":" 2DIGIT -- ; 00:00:00 - 23:59:59 -- wkday = "Mon" | "Tue" | "Wed" -- | "Thu" | "Fri" | "Sat" | "Sun" -- weekday = "Monday" | "Tuesday" | "Wednesday" -- | "Thursday" | "Friday" | "Saturday" | "Sunday" -- month = "Jan" | "Feb" | "Mar" | "Apr" -- | "May" | "Jun" | "Jul" | "Aug" -- | "Sep" | "Oct" | "Nov" | "Dec" --module Data.Time.HTTP -- | Format an UTCTime in RFC 1123 date and time. format :: UTCTime -> String -- | Parse a date and time string in any of RFC 822, RFC 1123, RFC 850 and -- ANSI C's asctime() formats. When the string can't be parsed, it -- returns Nothing. -- -- This function is even more permissive than what HTTP/1.1 specifies. -- That is, it accepts 2-digit years in RFC 822, omitted separator -- symbols in RFC 850, omitted sec fields, and non-GMT time zones. I -- believe this behavior will not cause a problem but you should know -- this. parse :: String -> Maybe UTCTime -- | This module provides functions to parse and format RFC 733 date and -- time formats. -- -- The syntax is as follows: -- --
-- date-time ::= [ day-of-week ", " ] date SP time ("-" | SP) zone
-- day-of-week ::= "Monday" | "Mon" | "Tuesday" | "Tue"
-- | "Wednesday" | "Wed" | "Thursday" | "Thu"
-- | "Friday" | "Fri" | "Saturday" | "Sat"
-- | "Sunday" | "Sun"
-- date ::= day ("-" | SP) month ("-" | SP) year
-- day ::= 2DIGIT
-- year ::= 2DIGIT | 4DIGIT
-- month ::= "January" | "Jan" | "February" | "Feb"
-- | "March" | "Mar" | "April" | "Apr"
-- | "May" | "June" | "Jun"
-- | "July" | "Jul" | "August" | "Aug"
-- | "September" | "Sep" | "October" | "Oct"
-- | "November" | "Nov" | "December" | "Dec"
-- time ::= hour [ ":" ] minute [ [ ":" ] second ]
-- hour ::= 2DIGIT
-- minute ::= 2DIGIT
-- second ::= 2DIGIT
-- zone ::= "GMT" ; Universal Time
-- | "NST" ; Newfoundland: -3:30
-- | "AST" | "ADT" ; Atlantic : -4 / -3
-- | "EST" | "EDT" ; Eastern : -5 / -4
-- | "CST" | "CDT" ; Central : -6 / -5
-- | "MST" | "MDT" ; Mountain : -7 / -6
-- | "PST" | "PDT" ; Pacific : -8 / -7
-- | "YST" | "YDT" ; Yukon : -9 / -8
-- | "HST" | "HDT" ; Haw/Ala : -10 / -9
-- | "BST" | "BDT" ; Bering : -11 / -10
-- | "Z" ; GMT
-- | "A" ; -1
-- | "M" ; -12
-- | "N" ; +1
-- | "Y" ; +12
-- | ("+" | "-") 4DIGIT ; Local diff: HHMM
--
module Data.Time.RFC733
-- | Format a ZonedTime in RFC 733.
format :: ZonedTime -> String
-- | Parse an RFC 733 date and time string. When the string can't be
-- parsed, it returns Nothing.
parse :: String -> Maybe ZonedTime