Introduction

This library extends the Time class:

  • conversion between date string and time object.

    • date-time defined by RFC 2822

    • HTTP-date defined by RFC 2616

    • dateTime defined by XML Schema Part 2: Datatypes (ISO 8601)

    • various formats handled by Date._parse (string to time only)

Design Issues

Specialized interface

This library provides methods dedicated to special purposes:

  • RFC 2822, RFC 2616 and XML Schema.

  • They makes usual life easier.

Doesn't depend on strftime

This library doesn't use Time#strftime. Especially #rfc2822 doesn't depend on strftime because:

  • %a and %b are locale sensitive

    Since they are locale sensitive, they may be replaced to invalid weekday/month name in some locales. Since ruby-1.6 doesn't invoke setlocale by default, the problem doesn't arise until some external library invokes setlocale. Ruby/GTK is the example of such library.

  • %z is not portable

    %z is required to generate zone in date-time of RFC 2822 but it is not portable.

Note that Time#strftime doesn't use strftime() function in libc since Ruby 1.9. This means Time#strftime is locale-insensitive since Ruby 1.9. The above statements are not valid now.