-- 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