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

Jos*_*h D 1 ruby

我有几个地方Time.parse(string).strftime("%m%d%Y")用来获取不同字符串的日期.

偶尔这些字符串可以为空''.当我用Time.parse它解析一个空字符串时,给我当前的日期.

我需要一种方法来阻止这种情况的发生和返回''或什么也没有.我的问题有解决方案吗?

require 'Time'
s = ''
Time.parse(s).strftime("%m%d%Y")
=> "04232013"
Run Code Online (Sandbox Code Playgroud)

我正在使用Ruby 1.8.7(2010-12-23 patchlevel 330)[i386-mingw32]

Ser*_*sev 8

只需单独处理.

def format_date s
  return if s.empty?
  Time.parse(s).strftime("%m%d%Y")
end
Run Code Online (Sandbox Code Playgroud)

  • `return if s.empty?`将满足OP的请求和Rubyistas :) +1来自我. (4认同)

saw*_*awa 6

也许推荐的方法是

Time.parse(s).strftime("%m%d%Y") unless s.empty?
Run Code Online (Sandbox Code Playgroud)

如果不满足条件,则评估为nil.