2011-07-06 96 views

回答

5

因爲我對這種可能性印象更深刻,所以我會把它放在答案中而不是評論中。使用String#unpack,我們可以處理4位/ 2位/ 什麼有:

"201107070928345345345".unpack("a4a2a*").join('/') 
=> "2011/07/070928345345345" 
+0

我非常滿意unpack :-) – Radek

9

這不是你如何使用它用於格式化日期。使用%格式的方法是:

puts "%.4s\\%.2s\\%s" % ["1","2","3"] 

所以,你需要多個參數 - 每個格式說明符。

如果您需要打印&格式字符串中的最新的日期,首先將字符串轉換爲日期/時間對象,然後使用strftime

。假定輸入的是日期和時間:

Time.parse("201107070928").strftime("%Y\\%m\\%d%H%M"). 
+0

那麼,有沒有什麼辦法可以說:先取4個字符字符串中再加入\\再從2個字符相同的字符串,然後添加\\然後剩下的字符串? – Radek

+2

's =「201107070928」;放置「%s \\%s \\%s」%[s [0 ... 4],s [4 ... 6],s [6 ..- 1]]'=>'2011 \ 07 \ 070928' –

+1

假定輸入是日期和時間:'Time.parse(「201107070928」)。strftime(「%Y \\%m \\%d%H%M」)'。 – Zabba

相關問題