Ruby on rails DateTime解析未定义的方法'year';

Ruby on rails DateTime解析未定义的方法'year';,ruby-on-rails,json,datetime,Ruby On Rails,Json,Datetime,我试图将字符串解析为DateTime,但在尝试删除年份时遇到错误: undefined method `year' for "Monday, Aug 25, 10:30":String 控制器 dates = [] temps = [] dt = [] @data['data'].flatten.each do |data| dates << data.keys temps << data.values end dates.flatten.each do |

我试图将字符串解析为DateTime,但在尝试删除年份时遇到错误:

undefined method `year' for "Monday, Aug 25, 10:30":String
控制器

dates = []
temps = []
dt = []

@data['data'].flatten.each do |data|
  dates << data.keys
  temps << data.values
end

dates.flatten.each do |date|
  dt << DateTime.parse(date).strftime("%A, %b %d, %H:%M")
end

您的示例不清楚,因为您没有显示年份方法的使用。但是,请注意,您在strftime字符串中遗漏了
%y
。我建议您在rails控制台中玩一玩,以获得所需的方法。例如:

[1] pry(main)> DateTime.parse("2014-08-25 10:30:00")
Mon, 25 Aug 2014 10:30:00 +0000
[2] pry(main)> DateTime.parse("2014-08-25 10:30:00").year
2014
[3] pry(main)> DateTime.parse("2014-08-25 10:30:00").strftime("%A, %b %d %y, %H:%M")
"Monday, Aug 25 14, 10:30"
[4] pry(main)> DateTime.parse("2014-08-25 10:30:00").strftime("%A, %b %d %y, %H:%M").year
NoMethodError: undefined method `year' for "Monday, Aug 25 14, 10:30":String
from (pry):4:in `<main>'
[1]pry(main)>DateTime.parse(“2014-08-25 10:30:00”)
2014年8月25日星期一10:30:00+0000
[2] pry(main)>DateTime.parse(“2014-08-25 10:30:00”)。年份
2014
[3] pry(main)>DateTime.parse(“2014-08-25 10:30:00”).strftime(“%A,%b%d%y,%H:%M”)
8月25日星期一14:30
[4] pry(main)>DateTime.parse(“2014-08-25 10:30:00”).strftime(“%A,%b%d%y,%H:%M”)。年
NoMethodError:未定义“8月25日星期一、14日10:30”的“年”方法:字符串
from(pry):4:in`'

谢谢dankohn,我应该提到我;I’我想一起退出今年的比赛。
[1] pry(main)> DateTime.parse("2014-08-25 10:30:00")
Mon, 25 Aug 2014 10:30:00 +0000
[2] pry(main)> DateTime.parse("2014-08-25 10:30:00").year
2014
[3] pry(main)> DateTime.parse("2014-08-25 10:30:00").strftime("%A, %b %d %y, %H:%M")
"Monday, Aug 25 14, 10:30"
[4] pry(main)> DateTime.parse("2014-08-25 10:30:00").strftime("%A, %b %d %y, %H:%M").year
NoMethodError: undefined method `year' for "Monday, Aug 25 14, 10:30":String
from (pry):4:in `<main>'