我想在Ruby中格式化字符串输出。我可以使用%来实现,但我无法弄清楚如何做到这一点。
与其输出“201107070928”,我希望输出“2011\07\070928”。
与其输出“201107070928”,我希望输出“2011\07\070928”。
puts "%.4s\\%.2s\\%s" % "201107070928"
出现错误:`%':参数太少(ArgumentError)
puts "%.4s\\%.2s\\%s" % "201107070928"
出现错误:`%':参数太少(ArgumentError)
这并不是格式化日期的正确方法。使用 %
格式化日期的方式是:
puts "%.4s\\%.2s\\%s" % ["1","2","3"]
所以,你需要多个参数 - 每个格式说明符一个。strftime
:Time.parse("201107070928").strftime("%Y\\%m\\%d%H%M").
我将把这个答案放在回答中而不是评论中,因为我对这种可能性更为印象深刻。使用String#unpack,我们可以处理一个4位数字/2位数字/任何内容:
"201107070928345345345".unpack("a4a2a*").join('/')
=> "2011/07/070928345345345"
Time.parse("201107070928").strftime("%Y\\%m\\%d%H%M")
。 - Zabbaputs“%s \\%s \\%s”%“201107070928”。match(/(\ d {4})(\ d {2})(\ d *)/)。to_a [1..-1]
- Paul Annesley"201107070928".match(/^([0-9]{4})([0-9]{2})([0-9]*)$/).to_a[1..-1].join("/")
- Ludovic Kuty