1

我有几个地方可以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 补丁级别 330)[i386-mingw32]

4

3 回答 3

8

单独处理就好。

def format_date s
  return if s.empty?
  Time.parse(s).strftime("%m%d%Y")
end
于 2013-04-23T18:06:37.053 回答
6

也许推荐的方法是

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

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

于 2013-04-23T18:36:18.343 回答
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") #=> ""
于 2013-04-23T18:15:34.633 回答