ruby on rails рекурсивная подстрока - PullRequest
2 голосов
/ 10 февраля 2012

У меня есть строка (на самом деле это дата и время), подобная этой "20120207080000".

Можно ли разделить данную строку, используя любой метод сопоставления с образцом или что-то еще?

т.е. мне нужен вывод, подобный этому

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

В противном случае возможно ли преобразовать данную строку в объект даты / времени ?.

версия ruby: 1.8.7

Ответы [ 3 ]

8 голосов
/ 10 февраля 2012
"20120207080000".unpack('A4A2A2A2A2A2') #=> ["2012", "02", "07", "08", "00", "00"]
4 голосов
/ 10 февраля 2012

Получите объект DateTime следующим образом:

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

Пожалуйста, позаботьтесь о том, чтобы вы использовали правильный порядок элементов.Я просто догадывался.

1 голос
/ 10 февраля 2012

@ steenslag answer - действительно хороший ответ, хотя вы также можете сделать это, просто используя строковые манипуляции.

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"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...