-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Parse and format HTTP/1.1 Date and Time strings -- -- 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.2 -- | 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 -- | Convert a ZonedTime to RFC 822 date and time string. toAscii :: ZonedTime -> Ascii -- | Convert a ZonedTime to RFC 822 date and time string. toAsciiBuilder :: ZonedTime -> AsciiBuilder -- | Parse an RFC 822 date and time string. When the string can't be -- parsed, it returns Left err. fromAscii :: Ascii -> Either String ZonedTime -- | Parse an RFC 822 date and time string. rfc822DateAndTime :: Parser ZonedTime -- | 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 -- | Convert a ZonedTime to RFC 733 date and time string. toAscii :: ZonedTime -> Ascii -- | Convert a ZonedTime to RFC 733 date and time string. toAsciiBuilder :: ZonedTime -> AsciiBuilder -- | Parse an RFC 733 date and time string. When the string can't be -- parsed, it returns Left err. fromAscii :: Ascii -> Either String ZonedTime -- | Parse RFC 733 date and time strings. rfc733DateAndTime :: Parser 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 -- | Convert a ZonedTime to RFC 1123 date and time string. toAscii :: ZonedTime -> Ascii -- | Convert a ZonedTime to RFC 1123 date and time string. toAsciiBuilder :: ZonedTime -> AsciiBuilder -- | Parse an RFC 1123 date and time string. When the string can't be -- parsed, it returns Left err. fromAscii :: Ascii -> Either String ZonedTime -- | Parse an RFC 1123 date and time string. rfc1123DateAndTime :: Parser ZonedTime -- | 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 -- | Convert a UTCTime to RFC 1123 date and time string. toAscii :: UTCTime -> Ascii -- | Convert a UTCTime to RFC 1123 date and time string. toAsciiBuilder :: UTCTime -> AsciiBuilder -- | 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 Left err. -- -- 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. fromAscii :: Ascii -> Either String UTCTime -- | Parse a date and time string in any formats allowed by HTTP/1.1 (RFC -- 2616). httpDateAndTime :: Parser UTCTime -- | This module provides functions for ANSI C's asctime() format. -- -- ANSI C's asctime() format looks like: -- --
--   Wdy Mon [D]D 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 | SP 1DIGIT
--   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 -- | Convert a LocalTime to ANSI C's asctime() string. toAscii :: LocalTime -> Ascii -- | Convert a LocalTime to ANSI C's asctime() string. toAsciiBuilder :: LocalTime -> AsciiBuilder -- | Parse an ANSI C's asctime() string. When the string can't be -- parsed, it returns Left err. fromAscii :: Ascii -> Either String LocalTime -- | Parse an ANSI C's asctime() string. asctime :: Parser LocalTime