Project

General

Profile

Bug #12285 ยป iso8601_YYYY_MM.patch

jonwolski (Jon Wolski), 12/11/2017 09:59 PM

View differences:

ext/date/date_parse.c
set_hash("mon", str2num(s[2]));
}
else if (!NIL_P(s[5])) {
set_hash("yday", str2num(s[5]));
if (RSTRING_LEN(s[5]) > 2) {
set_hash("yday", str2num(s[5]));
} else {
set_hash("month", str2num(s[5]));
}
if (!NIL_P(s[4])) {
y = str2num(s[4]);
if (RSTRING_LEN(s[4]) < 4)
......
{
static const char pat_source[] =
"\\A\\s*(?:([-+]?\\d{2,}|-)-(\\d{2})?-(\\d{2})|"
"([-+]?\\d{2,})?-(\\d{3})|"
"([-+]?\\d{2,})?-(\\d{2,3})|"
"(\\d{4}|\\d{2})?-w(\\d{2})-(\\d)|"
"-w-(\\d))"
"(?:t"
test/date/test_date_parse.rb
h = Date._iso8601('2001-023T04:05:06Z')
assert_equal([2001, 23, 4, 5, 6, 0],
h.values_at(:year, :yday, :hour, :min, :sec, :offset))
h = Date._iso8601('2001-23')
assert_equal([2001, 23],
h.values_at(:year, :month))
h = Date._iso8601('-023T04:05:06Z')
assert_equal([nil, 23, 4, 5, 6, 0],
h.values_at(:year, :yday, :hour, :min, :sec, :offset))
    (1-1/1)