我想用ruby格式化字符串的輸出。我可以用%來做,但我無法弄清楚。如何在Ruby中使用%來格式化字符串輸出?
而不是201107070928
我要輸出2011\07\070928
puts "%.4s\\%.2s\\%s" % "201107070928"
給我一個錯誤:'%':參數太少(引發ArgumentError)
我想用ruby格式化字符串的輸出。我可以用%來做,但我無法弄清楚。如何在Ruby中使用%來格式化字符串輸出?
而不是201107070928
我要輸出2011\07\070928
puts "%.4s\\%.2s\\%s" % "201107070928"
給我一個錯誤:'%':參數太少(引發ArgumentError)
因爲我對這種可能性印象更深刻,所以我會把它放在答案中而不是評論中。使用String#unpack,我們可以處理4位/ 2位/ 什麼有:
"201107070928345345345".unpack("a4a2a*").join('/')
=> "2011/07/070928345345345"
這不是你如何使用它用於格式化日期。使用%
格式的方法是:
puts "%.4s\\%.2s\\%s" % ["1","2","3"]
所以,你需要多個參數 - 每個格式說明符。
如果您需要打印&格式字符串中的最新的日期,首先將字符串轉換爲日期/時間對象,然後使用strftime
:
。假定輸入的是日期和時間:
Time.parse("201107070928").strftime("%Y\\%m\\%d%H%M").
我非常滿意unpack :-) – Radek