Метод Time.iso8601
является ограниченным подмножеством ISO-8601.
- Каковы его ограничения?
- Кто-нибудь знает о полной реализации Ruby? Я использую MRI 1.8.7.
Update
Похоже, что нет ни одного класса, который обрабатывал бы все различные комбинации даты и даты и времени 8601. Однако мне удалось обойти проблемы, используя методы Date.parse
и Time.iso8601
. Недостатком является то, что вам нужно определить в коде, будет ли вход выглядеть как дата или дата/время.
Предупреждение: Разница в часовых поясах
Time.iso8601
и Time.parse
ведут себя по-другому.
>> 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
Различия между Time.iso8601 и ISO-8601
Этот документ затрагивает различия между тем, что находится в ISO-8601, и тем, что поддерживается Ruby. Короткий ответ заключается в том, что количество возможных форматов ограничено.