小编Ale*_*hak的帖子

错误在“ Date#strtime”中?它解析一个月中超过30/31的天,使它们与年份混淆

为什么具有明确格式的strptime方法成功解析具有特定格式的日期字符串?

需要明确接受API的格式日期

$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
$ irb
irb(main):001:0> require 'date'
=> true
irb(main):002:0> Date.strptime('01-01-1970', '%Y-%m-%d')
=> #<Date: 0001-01-19 ((1721442j,0s,0n),+0s,2299161j)>
irb(main):003:0> Date.strptime('01-01-1970', '%Y-%m-%d').to_s
=> "0001-01-19"
irb(main):004:0> Date.strptime('01-01-1970', '%Y-%m-%d').year
=> 1
irb(main):005:0> Date.strptime('01-01-1970', '%Y-%m-%d').day
=> 19

Run Code Online (Sandbox Code Playgroud)

期望:测试通过

it 'raises an exception when wrong format' do
 expect { Date.strptime('01-01-1970', '%Y-%m-%d') }.to raise_exception(ArgumentError, 'invalid format')
end
Run Code Online (Sandbox Code Playgroud)

实际: expected ArgumentError with "invalid format" but nothing was raised

ruby date

0
推荐指数
1
解决办法
57
查看次数

标签 统计

date ×1

ruby ×1