Project

General

Profile

Actions

Bug #12981

closed

Date.parse raises an Argument error under a specific condition

Added by kenta-s (Kenta SHIRAI) over 7 years ago. Updated over 4 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
[ruby-core:78374]

Description

Date.parse cannot accept incomplete strings whose delimiter is a hyphen like: "2016-12", although it can accept if a delimiter is a slash like: "2016/12"

I'm not really sure if this is a bug or an expected behavior, but a maintainer of rails/rails recommended me to report this to Ruby team when I issued a PR( https://github.com/rails/rails/pull/27181 ) to them. So I'd appreciate if this issue is looked into.

steps to reproduce:

require "date"
=> true

Date.parse("2016/12/01")
=> #<Date: 2016-12-01 ((2457724j,0s,0n),+0s,2299161j)>

Date.parse("2016-12-01")
=> #<Date: 2016-12-01 ((2457724j,0s,0n),+0s,2299161j)>

Date.parse("2016/12")
=> #<Date: 2016-12-01 ((2457724j,0s,0n),+0s,2299161j)>

Date.parse("2016-12")
ArgumentError: invalid date
	from (irb):3:in `parse'
	from (irb):3
	from /usr/local/bin/irb:11:in `<main>'

Related issues 1 (0 open1 closed)

Is duplicate of Ruby master - Bug #12285: Date.iso8601 does not properly handle partial date stringsClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0