Как разобрать временные интервалы в Ruby? - PullRequest
2 голосов
/ 31 января 2012

У меня есть строки временного интервала, такие как 6:30 am – 2:30 pm или 5:30–11:00 pm (обратите внимание на пропущенное здесь «pm» для времени начала), которые я хочу проанализировать в объектах Time в Ruby. Есть ли элегантный способ сделать это, или мне нужно ловить все разные случаи вручную?

Ответы [ 4 ]

5 голосов
/ 31 января 2012
2 голосов
/ 01 февраля 2012

Спасибо за рекомендацию Chronic, увы, она не обеспечивает интервальный анализ. Завершается с помощью Time.parse и разбирает интервал вручную.

2 голосов
/ 31 января 2012

Возможно, вам поможет библиотека времени, такая как Хронический ?

0 голосов
/ 11 марта 2014

Вот фрагмент, который делает это. Он примет в строке интервала формата iso8601 (начала и конца формата) и вернет вам время начала и окончания интервала.

iso8601_interval_text = "2007-03-01T13:00:00Z/2008-05-11T15:30:00Z"
start, finish = iso8601_interval_text.split(/\//).map {|t| Time.parse(t)}
...