Bug #12833 ยป iso8601_YYYY_MM.patch
| 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))
|
||