如何将字符串 2012、December、15 转换为 Datetime 对象
How to convert the string 2012 , December, 15 to a Datatime object
我会得到字符串“2012”然后"December"第一次
在下面得到字符串1,15, 30
我应该将它们转换成 Datetime
对象
2012-12-01
2012-12-15
2012-12-30
怎么做?
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] 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 或 Time.parse
):
[10] pry(main)> require 'time'
=> true
[11] pry(main)> m[:days].split(',').collect {|day| Time.parse "#{m[:year]} #{m[:month]} #{day}"}
=> [2012-12-01 00:00:00 +0100,
2012-12-15 00:00:00 +0100,
2012-12-30 00:00:00 +0100]
我会得到字符串“2012”然后"December"第一次
在下面得到字符串1,15, 30
我应该将它们转换成 Datetime
对象
2012-12-01
2012-12-15
2012-12-30
怎么做?
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] 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 或 Time.parse
):
[10] pry(main)> require 'time'
=> true
[11] pry(main)> m[:days].split(',').collect {|day| Time.parse "#{m[:year]} #{m[:month]} #{day}"}
=> [2012-12-01 00:00:00 +0100,
2012-12-15 00:00:00 +0100,
2012-12-30 00:00:00 +0100]