The current (as of June 2005) standard for date formatting is defined in "ISO 8601".
[Note: as of 2005-06, ISO 8601:2000 is a withdrawn standard, and is replaced by ISO 8601:2004; TITLE: " Data elements and interchange formats -- Information interchange -- Representation of dates and times (available in English only) Edition: 3 "] The international format defined by ISO (IS0 8601) tries to address [incompatibility] problems by defining a numerical date system as follows: YYYY-MM-DD where YYYY is the year [all the digits, i.e. 2012] MM is the month [01 (January) to 12 (December)] DD is the day [01 to 31] For example, "3rd of April 2002", in this international format is written: 2002-04-03 ISO 8601 Date and Time Format is YYYY-MM-DDThh:mm:ss (Example; uses 24-hour Universal Coordinated Time/UTC/GMT): 2000-02-14T18:42:00 Summary of issues: http://www.iso.org/iso/en/prods-services/popstds/datesandtime.html See also: Country Name Codes - http://www.iso.org/iso/en/prods-services/popstds/countrynamecodes.html Language Codes - http://www.iso.org/iso/en/prods-services/popstds/languagecodes.html Currency Codes - http://www.iso.org/iso/en/prods-services/popstds/currencycodes.html ============================================== | ALTERNATIVE RECOMENDATIONS | | 1) Liberty Date Recommendation | ============================================== [Proposed by Liberty Miller] The Liberty Date Recommendation (also, informally, "Liberty Date/Time" or "Liberty Time Standard") is based on the Japanese language, which (in modern usage) names months using a simple model of <number>-<month>. For example, "6gatsu" (rokugatsu) means simply "6th month" (what would be, in English, "June"), and "12gatsu" (jyuunigatsu) means "twelfth month" (December). In this date recommendation therefore, the ASCII letter "g" is appended to the two digit month identifier, allowing the date to be presented in any order. The other two number fields are then easily identified as day and year. For example: 04-06g-2005 = June 4, 2005 2005.01g.01 = January 1, 2005 04g,06,0807 = April 6, 807 A.D. (C.E.) 1998-12g-02 = December 2, 1998 This recommendation can be used in conjunction with ISO 8601's YYYY-MM-DD model to more readily confirm the month position in the string. This would be used as YYYY-MMg-DD. For example: 2002-04g-03 = "3rd of April 2002" (instead of only "2002-04-03"). The "T" used in the ISO time format (e.g. 2000-02-14T18:42:00) is found to visually obscurring and distracting by many users. For this reason, The Liberty DateTime format uses an underscore to separate the date from the time. For example, instead of 2000-02-14T18:42:00: 2000-02g-14_18:42.002 Note also that decimal second fractions are used. 1 decisecond (ds) = 1/10 second = 0.1 s = 00:00:00.100 Conversion: 00:00:00:01 {hh:mm:ss:60) ============================================== | OLDER RECOMMENDATIONS, NOW OBSOLETE | ============================================== ================= HTTP 1.1 ==================== ( SUMMARY OF RECOMMENDATION: Use RFC 1123 Format. E.g. Sun, 06 Nov 1994 08:49:37 GMT ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RFC 2616 HTTP/1.1 June 1999 Fielding, et al. Standards Track 3.3 Date/Time Formats 3.3.1 Full Date HTTP applications have historically allowed three different formats for the representation of date/time stamps: 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 The first format is preferred as an Internet standard and represents a fixed-length subset of that defined by RFC 1123 [8] (an update to RFC 822 [9]). The second format is in common use, but is based on the obsolete RFC 850 [12] date format and lacks a four-digit year. HTTP/1.1 clients and servers that parse the date value MUST accept all three formats (for compatibility with HTTP/1.0), though they MUST only generate the RFC 1123 format for representing HTTP-date values in header fields. See section 19.3 for further information. Note: Recipients of date values are encouraged to be robust in accepting date values that may have been sent by non-HTTP applications, as is sometimes the case when retrieving or posting messages via proxies/gateways to SMTP or NNTP. Fielding, et al. Standards Track [Page 20] RFC 2616 HTTP/1.1 June 1999 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 is case sensitive and MUST NOT include additional LWS beyond that specifically included as SP in the grammar. 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" Note: HTTP requirements for the date/time stamp format apply only to their usage within the protocol stream. Clients and servers are not required to use these formats for user presentation, request logging, etc. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ============================================== | OLDER RECOMMENDATIONS, NOW OBSOLETE | | (CONTINUED) | ============================================== ================= HTTP 1.0 ==================== ( SUMMARY OF RECOMMENDATION: Use RFC 1123 Format. E.g. 'Sun, 06 Nov 1994 08:49:37 GMT' ) ((quote/excerpt begins)) RFC 1945 HTTP/1.0 May 1996 Berners-Lee, et al Informational . . . 3.3 Date/Time Formats HTTP/1.0 applications have historically allowed three different formats for the representation of date/time stamps: 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 Berners-Lee, et al Informational [Page 15] RFC 1945 HTTP/1.0 May 1996 The first format is preferred as an Internet standard and represents a fixed-length subset of that defined by RFC 1123 [6] (an update to RFC 822 [7]). The second format is in common use, but is based on the obsolete RFC 850 [10] date format and lacks a four-digit year. HTTP/1.0 clients and servers that parse the date value should accept all three formats, though they must never generate the third (asctime) format. Note: Recipients of date values are encouraged to be robust in accepting date values that may have been generated by non-HTTP applications, as is sometimes the case when retrieving or posting messages via proxies/gateways to SMTP or NNTP. All HTTP/1.0 date/time stamps must be represented in Universal Time (UT), also known as Greenwich Mean Time (GMT), without exception. This is indicated in the first two formats by the inclusion of "GMT" as the three-letter abbreviation for time zone, and should 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" Note: HTTP requirements for the date/time stamp format apply only to their usage within the protocol stream. Clients and servers are not required to use these formats for user ((unquote/excerpt ends))