【问题标题】:Ruby: convert string to dateRuby:将字符串转换为日期
【发布时间】:2011-02-12 20:03:54
【问题描述】:

在 Ruby 中,将"{ 2009, 4, 15 }" 格式的字符串转换为日期的最佳方法是什么?

【问题讨论】:

标签: ruby string date


【解决方案1】:

你也可以使用Date.strptime:

Date.strptime("{ 2009, 4, 15 }", "{ %Y, %m, %d }")

【讨论】:

  • 如果月份无效怎么办......有没有一种方法可以返回nil而不是引发异常
  • @Ross:用beginrescue ArgumentError 包装它有什么问题,在这种情况下返回nil
【解决方案2】:

另一种方式:

s = "{ 2009, 4, 15 }"
d = Date.parse( s.gsub(/, */, '-') )

【讨论】:

    【解决方案3】:
    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
    

    【讨论】:

      【解决方案4】:

      另一种方式:

      Date.new(*"{ 2009, 04, 15 }".scan(/\d+/).map(&:to_i))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-27
        • 1970-01-01
        • 2011-11-28
        • 1970-01-01
        • 2017-08-28
        相关资源
        最近更新 更多