Is there a full implementation for ISO-8601 date parsing for Ruby?

Viewed 15830

The Time.iso8601 method is a restricted subset of ISO-8601.

  • What are its limitations?
  • Does anyone know of a full implementation for Ruby? I'm using MRI 1.8.7.

Update

It looks like there isn't a single class that handles all of the various 8601 date and date/time combinations. However, I have managed to work around the problems by using both the Date.parse and Time.iso8601 methods. The downside is that you need to decide in code whether the input looks like a date or a date/time.

Warning : Timezone differences

Time.iso8601 and Time.parse behave differently.

>> Time.parse("2010-09-06T12:27:00.10-05:00")
=> Mon Sep 06 18:27:00 +0100 2010

>> Time.iso8601("2010-09-06T12:27:00.10-05:00")
=> Mon Sep 06 17:27:00 UTC 2010

Differences between Time.iso8601 and ISO-8601

This document touches on the differences between what is in ISO-8601 and what is supported by Ruby. The short answer is that the number of possible formats is restricted.

2 Answers
Related