2012-02-10 88 views
2

我有這樣的字符串(實際上是日期和時間),就像這樣"20120207080000"ruby​​ on rails遞歸子字符串

是否有任何選擇使用任何模式匹配技術或其他任何東西來分割給定的字符串?

即我需要這樣的

output = ["2012", "02", "07", "08", "00", "00"] 

輸出,否則是有可能給定的字符串轉換成日期/時間對象?

紅寶石版本:1.8.7

回答

8
"20120207080000".unpack('A4A2A2A2A2A2') #=> ["2012", "02", "07", "08", "00", "00"] 
+0

感謝@steenslag。非常好的答案。 – 2012-02-10 09:38:23

+0

+1不錯的答案.. – 2012-02-10 09:54:55

4

獲取DateTime對象是這樣的:

require 'date' 
DateTime.strptime('20120207080000', '%Y%m%d%H%M%S') 

您使用元素的正確順序請小心。我只是猜測。

+0

謝謝@iltempo。 – 2012-02-10 09:41:45

1

@steenslag答案是一個很好的答案,雖然你也可以只使用字符串操作。

str = "20120207080000" 
output = [str[0..3], str[4..5], str[6..7], str[8..9], str[10..11], str[12..13]] 

結果:

["2012", "02", "07", "08", "00", "00"] 
+0

如果你喜歡字符串的話,還有'[str [0,4]] + str [4 ..- 1] .scan(/../)'。 – 2012-02-10 10:02:33