[ruby-core:74894] [Ruby trunk Bug#12273] Time.parse incorrectly parses Russian months

From: leemour@...
Date: 2016-04-12 14:22:20 UTC
List: ruby-core #74894
Issue #12273 has been updated by Viacheslav Ptsarev.

Subject changed from Time.parse incorrectly parses 31st days of month in Russian to Time.parse incorrectly parses Russian months

When parsing dates in Russian where day number is 31, `Time.parse` returns `2016-05-01`. No matter what month or year is provided. With other dates, it returns date with given day number, but current month and year.
31 march 2016:

```
irb(main):003:0> require "time"
=> true
irb(main):004:0> Time.parse "31 марта 2016"
=> 2016-05-01 00:00:00 +0300
irb(main):005:0> Time.parse "31 march 2016"
=> 2016-03-31 00:00:00 +0300
irb(main):006:0> Time.parse "31 mars 2016"
=> 2016-03-31 00:00:00 +0300
```

31 december 2013:

```
irb(main):013:0> Time.parse "31 декабря 2013"
=> 2016-05-01 00:00:00 +0300
irb(main):014:0> Time.parse "31 december 2013"
=> 2013-12-31 00:00:00 +0400
```

22 january 2013:

```
irb(main):010:0> Time.parse "22 января 2013"
=> 2016-04-22 00:00:00 +0300
irb(main):011:0> Time.parse "22 january 2013"
=> 2013-01-22 00:00:00 +0400
```


----------------------------------------
Bug #12273: Time.parse incorrectly parses Russian months
https://bugs.ruby-lang.org/issues/12273#change-58020

* Author: Viacheslav Ptsarev
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 2.3.0
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
When parsing dates in Russian where day number is 31, `Time.parse` returns `2016-05-01`. No matter what month or year is provided.
31 march 2016:

```
irb(main):003:0> require "time"
=> true
irb(main):004:0> Time.parse "31 марта 2016"
=> 2016-05-01 00:00:00 +0300
irb(main):005:0> Time.parse "31 march 2016"
=> 2016-03-31 00:00:00 +0300
irb(main):006:0> Time.parse "31 mars 2016"
=> 2016-03-31 00:00:00 +0300
```

31 december 2013:

```
irb(main):013:0> Time.parse "31 декабря 2013"
=> 2016-05-01 00:00:00 +0300
irb(main):014:0> Time.parse "31 december 2013"
=> 2013-12-31 00:00:00 +0400
```



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next