rwb*_*rwb 2 ruby ruby-on-rails
我有一个采用DateTime(当前为字符串)的方法,然后将其转换为DateTime对象,例如:
def foo(time)
the_time = Time.parse(time)
...
end
Run Code Online (Sandbox Code Playgroud)
所以,
foo("2012-09-03")
Run Code Online (Sandbox Code Playgroud)
我还希望能够解析DateTime对象:
foo(Time.now)
Run Code Online (Sandbox Code Playgroud)
但是Time.parse抱怨我没有给它一个字符串:
NoMethodError: undefined method `gsub!' for 2012-08-08 15:59:00 UTC:Time
Run Code Online (Sandbox Code Playgroud)
有没有一种优雅的方法(一行?)从字符串或DateTime对象返回DateTime对象(我宁愿避免使用if语句)
谢谢
编辑:感谢您的评论-我并没有真正反对使用if语句,我只是在看是否有更好的东西
这是不使用if语句的一种方法:
def foo(time)
the_time = Time.parse(time.to_s)
# ...
end
Run Code Online (Sandbox Code Playgroud)
但是,如果您正在寻找一种优雅的解决方案,那么我怀疑是否可以这样考虑重新解析日期。您为什么认为这if是一个不好的选择?这是我的处理方式:
def foo(time)
the_time = time.respond_to?(:to_time) ? time.to_time : Time.parse(time.to_s)
# ...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1657 次 |
| 最近记录: |