【发布时间】:2011-02-12 20:03:54
【问题描述】:
在 Ruby 中,将"{ 2009, 4, 15 }" 格式的字符串转换为日期的最佳方法是什么?
【问题讨论】:
在 Ruby 中,将"{ 2009, 4, 15 }" 格式的字符串转换为日期的最佳方法是什么?
【问题讨论】:
你也可以使用Date.strptime:
Date.strptime("{ 2009, 4, 15 }", "{ %Y, %m, %d }")
【讨论】:
begin 和rescue ArgumentError 包装它有什么问题,在这种情况下返回nil?
另一种方式:
s = "{ 2009, 4, 15 }"
d = Date.parse( s.gsub(/, */, '-') )
【讨论】:
def parse_date(date)
Date.parse date.gsub(/[{}\s]/, "").gsub(",", ".")
end
date = parse_date("{ 2009, 4, 15 }")
date.day
#=> 15
date.month
#=> 4
date.year
#=> 2009
【讨论】:
另一种方式:
Date.new(*"{ 2009, 04, 15 }".scan(/\d+/).map(&:to_i))
【讨论】: