Почему Date.strptime не выбрасывает ArgumentError в консоль rails - PullRequest
0 голосов
/ 30 января 2019

В моей локальной консоли rails, передаваемой 31.09.2011, возвращается 10.01.2011

[1] pry(main)> Date.strptime("09/31/2011", '%m/%d/%Y')
=> Sat, 01 Oct 2011

В консоли heroku выдается ошибка ArgumentError:

irb(main):002:0> Date.strptime("09/31/2011", '%m/%d/%Y')
ArgumentError: invalid date
    from (irb):2:in `strptime'

1 Ответ

0 голосов
/ 31 января 2019

Дважды проверьте, что в ваших зависимостях dev Gemfile нет чего-то, что могло бы испортить функцию Date strptime.

Например, гем Timecop устанавливает псевдоним для Date.strptime для этого метода: https://www.rubydoc.info/gems/timecop/Date.strptime_with_mock_date

Что в итоге вызывает Time.strptime(str, fmt).to_date.

Это поведение очень похоже на то, что вы сообщили:

irb(main):001:0> Date.strptime("09/31/2011", '%m/%d/%Y')
ArgumentError: invalid date
    from (irb):1:in 'strptime'
irb(main):002:0> Time.strptime("09/31/2011", '%m/%d/%Y').to_date
=> Sat, 01 Oct 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...