如何在Ruby dateTime分钟中插入前导零

时间:2014-01-30 21:15:43

标签: ruby datetime xml-rpc datetime-format

我有一个调用API的脚本。 API返回dateTime.iso8601对象。我似乎无法弄清楚如何在分钟上获得领先的零点。

我在这里看过其他问题,说使用strftime,但会引发undefined method 'strftime'

我尝试了以下内容:

systems.each do |system|
    time = system["last_checkin"].strftime('%H:$M')
    print "#{system['name']} #{time}\n"
end

systems.each do |system|
    time = system["last_checkin"]
    hour = time.strftime('%H')
    min = time.strftime('%m')
    print "#{system['name']} #{hour}:#{min}\n"
end

还有一些我不再记得的了。

我该如何接近这个?

2 个答案:

答案 0 :(得分:1)

尝试

system["last_checkin"].to_time.strftime('%H:%M')

将其转换为Time(具有日期),然后您可以使用strftime获取所需的格式

答案 1 :(得分:0)

在挖掘并拼凑出我收到的信息片段后,我终于找到了对我有用的东西。

我只是格式化了time.min字符串:

min = "%02d" % time.min

我还在time.hour中添加了12以获得24小时格式。

systems.each do |system|
    time = system["last_checkin"]
    hour = time.hour + 12
    min = "%02d" % time.min
    print "#{system['name']} #{hour}:#{min}\n"
end

我想有一种更简洁的方法可以做到这一点,但作为Ruby的新手,我对此感到满意。

编辑: 在撰写我的解决方案jtzero时,我发布了更为简洁的方式。