DateTime解析未定义的方法`year'

时间:2014-08-25 01:00:59

标签: 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 |date|
  dt << DateTime.parse(date).strftime("%A, %b %d, %H:%M")
end

JSON

{"status": "ok", "data": [{"2014-08-25 10:30:00": 12.6}]}

1 个答案:

答案 0 :(得分:0)

您的示例不明确,因为您没有展示您使用年份方法。但请注意,您已从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>'