我有几个地方使用Time.parse(string).strftime("%m%d%Y")
来获取不同字符串的日期。
有时这些字符串可以为空''
。当我用Time.parse
解析一个空字符串时,它会给我当前的日期。
我需要一种方法来阻止这种情况发生并返回''
或什么都没有。我的问题有解决方案吗?
require 'Time'
s = ''
Time.parse(s).strftime("%m%d%Y")
=> "04232013"
我正在使用Ruby 1.8.7(2010-12-23 patchlevel 330)[i386-mingw32]
答案 0 :(得分:8)
单独处理。
def format_date s
return if s.empty?
Time.parse(s).strftime("%m%d%Y")
end
答案 1 :(得分:6)
也许推荐的方式是
Time.parse(s).strftime("%m%d%Y") unless s.empty?
如果不满足条件,则评估为nil
。
答案 2 :(得分:1)
require "time"
s = '12/12/2013 05:23:11'
p s.empty? ? '' : Time.parse(s).strftime("%m%d%Y") #=> "12122013"
s = ''
p s.empty? ? '' : Time.parse(s).strftime("%m%d%Y") #=> ""