Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 当字符串为空时,如何阻止Time.parse返回当前日期?_Ruby - Fatal编程技术网

Ruby 当字符串为空时,如何阻止Time.parse返回当前日期?

Ruby 当字符串为空时,如何阻止Time.parse返回当前日期?,ruby,Ruby,我有几个地方使用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 patchlev

我有几个地方使用
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]

只需单独处理即可

def format_date s
  return if s.empty?
  Time.parse(s).strftime("%m%d%Y")
end

分开处理就行了

def format_date s
  return if s.empty?
  Time.parse(s).strftime("%m%d%Y")
end

也许推荐的方法是

Time.parse(s).strftime("%m%d%Y") unless s.empty?

当不满足该条件时,其计算结果为
nil

也许建议的方法是

Time.parse(s).strftime("%m%d%Y") unless s.empty?

当条件不满足时,计算结果为
nil

s.empty?
更多的“rubysh”?我想这取决于一个人的口味。使用你喜欢的东西。@squiguy是的-如果s.empty能满足OP的要求,那么使用
empty?
返回rubystas:)+1。Is
s.empty?
更多的“rubysh”?我想这取决于一个人的品味。使用你喜欢的东西。@squiguy是的-如果s.empty能满足OP的请求和RubyStats:)+1,那么使用
empty?
return更符合ruby的习惯。根据问题,“nothing”是一个可接受的返回值,有条件的回答只能是+1。@iain我回答OP的问题时
我需要一种方法来阻止这种情况发生,并返回“”或什么都不返回。
谢谢你的补充:)我知道,这就是你获得投票的原因。我只是一个“少即是多”类型的人(或者是一个学究!):没有必要使用三元组,“nothing”是一个可接受的返回值根据问题,有条件的回答可以,但是+1是一个好的答案。@iain我的回答是OP询问的
我需要一种方法来阻止这种情况发生并返回“”或什么都没有。
谢谢你的补充:)我知道,这就是为什么你得到了选票。我只是一个“少即是多”的人(或者是一个学究!):D