将dateTime.iso8601值转换为Ruby中的人类可读日期

时间:2014-01-29 04:31:28

标签: ruby datetime

我正在玩Red Hat Satellite API。 API调用返回的值之一是dateTime.iso8601 "last_checkin" - Last time server successfully checked in。不过,我不知道如何解析这个问题。

这是返回数据的代码:

systems.each do |system|
    print "#{system["name"]}" + " " + "#{system["last_checkin"]}" + "\n"
end

它给出了一个哈希值:#<XMLRPC::DateTime:0x97102d8>。至少,我认为这是一个哈希。

我需要做些什么才能查看并提取有用的信息?

1 个答案:

答案 0 :(得分:1)

那不是Hash,这是类XMLRPC::DateTime的一个实例。使用它的方法来获取可打印的值,例如:

systems.each do |system|
  system = system["last_checkin"] # or whatever value you are interested in
  puts "#{system.mon}-#{system.day}-#{system.year}"
end

另外请避免使用"a"+"b"字符串连接;有一个inplace-evaluation ruby​​范例("#{val}"。)