Ruby - 将字符串转换为日期

时间:2011-06-02 11:50:06

标签: ruby date

我有一个字符串,如“2011-06-02T23:59:59 + 05:30”。

我想将其转换为日期格式,只需解析日期“2011-06-02”。

4 个答案:

答案 0 :(得分:27)

对于Ruby 1.9.2:

require 'date'    # If not already required. If in Rails then you don't need this line).
puts DateTime.parse("2011-06-02T23:59:59+05:30").to_date.to_s

答案 1 :(得分:12)

require 'date'
d = Date.parse("2011-06-02T23:59:59+05:30")
d.strftime("%F")

答案 2 :(得分:2)

简化方式是

require 'date'
date = "2011-06-02T23:59:59+05:30".gsub(/T.*/, '')
DateTime.parse(date)

答案 3 :(得分:2)

Time.parse()应该允许你解析整个日期时间。然后,您可以使用time.strftime(string)将其格式化为字符串中的日期。

date = Time.parse("2011-06-02T23:59:59+05:30")
date_string = time.strftime("%y-%m-%d")
of
date_string = time.strftime("%F")

(有关更多输出字符串格式,请参阅Ruby Doc for Time) 如果你想要一个字符串,上面应该工作;如果你想要一个日期对象来处理那么ruby Date类可以帮助你处理它,但我相信仍然需要用Time对象完成所有事情;有关Date类的详细信息,请参阅Ruby Doc for Date

希望有所帮助,如果我的答案走错了方向,请告诉我。