Time.zone.parse('invalid')
为什么不会Time.parse('invalid')
引发错误?
使用Rails 4.2.7.1的示例
>> Time.zone.parse('invalid')
nil
>> Time.parse('invalid')
ArgumentError: no time information in "invalid"
from D:/softwares/ruby/Ruby22/lib/ruby/2.2.0/time.rb:252:in `make_time'
from D:/softwares/ruby/Ruby22/lib/ruby/2.2.0/time.rb:364:in `parse'
答案 0 :(得分:2)
如果无法提取日期,则两种方法都会调用Date._parse
,返回{}
。
Time.zone.parse
停在那里,如果结果为空则返回。
Time.parse
调用make_time
,如果无法生成日期,则会引发错误。