如何将字符串2012年12月15日转换为Datetime对象

时间:2015-01-08 10:28:40

标签: ruby-on-rails ruby

我将获得String" 2012"然后" 12月"第一次

在下面获取字符串1,15, 30

我应该将它们转换为Datetime对象

2012年12月1日

2012年12月15日

2012-12-30

怎么做?

2 个答案:

答案 0 :(得分:3)

Date.strptime('2012 December', '%Y %B')
#=> Sat, 01 Dec 2012

date = Date.strptime('2012 December 10', '%Y %B %d')
#=> Mon, 10 Dec 2012

date.strftime("%Y-%m-%d")
#=> "2012-12-10"

答案 1 :(得分:0)

你有这个字符串:

[1] pry(main)> str = "2012 December 1,15, 30"
=> "2012 December 1,15, 30"

你想得到它的三个日期(12月1日,15日和30日。首先,从这个字符串中获取年,月和日:

[2] pry(main)> m = /(?'year'\d*)\s(?'month'[a-zA-Z]*)(?'days'[\d, ]*)/.match str
=> #<MatchData
 "2012 December 1,15, 30"
 year:"2012"
 month:"December"
 days:" 1,15, 30">

然后将days拆分为数组并对其进行迭代,将年份和月份的天数转换为Date对象(您可以使用Date.strptime作为上面显示的shivam或{{1 }}):

Time.parse