문제

Time.parse를 사용하여 문자열에서 시간 객체를 만듭니다.

몇 가지 이유

Time.parse("05-14-2009 19:00")

범위 오류에 대한 인수를 유발합니다

Time.parse("05-07-2009 19:00")

하지 않습니다

어떤 아이디어?

도움이 되었습니까?

해결책

내 생각에 문자열의 두 번째 부분 (14)이 달이 될 것으로 기대하는 것 같아요.

이 링크는 당신이 그것을 구문 분석하는 데 도움이 될 수 있습니다.

다른 팁

문자열 사용 형식을 알고 있다면 :

Time.strptime(date, format, now=self.now) {|year| ...}   

http://www.ruby-doc.org/core-1.9/classes/time.html#m000266

그것은 당신의 문제를 해결하고 아마도 Time.parse.

편집하다:

그들이 가져간 것 같습니다 strptime 시간 수업에서 그러나 그것은 호출되었습니다 Date.strptime 그래도. 당신이 레일에 있다면 당신은 할 수 있습니다 :

Date.strptime("05-14-2009 19:00","%m-%d-%Y %H:%M").to_time

순수한 루비를 사용하면 다음과 같습니다.

require 'date'
d=Date._strptime("05-14-2009 19:00","%m-%d-%Y %H:%M")

Time.utc(d[:year], d[:mon], d[:mday], d[:hour], d[:min], 
         d[:sec], d[:sec_fraction], d[:zone])

또한보십시오: Ruby on Rails의 날짜 및 시간 형성 문제.

그것은 휴리스틱 때문입니다 Time#parse.

그리고 그것은 영미 형식 때문입니다.

Dashes '-'MM-DD-Yyyy가 예상되며 슬래시가 포함되어 있습니다. '/'DD/MM/YYYY가 예상됩니다.

이 행동 변화 의도적으로 1.9. EUR, ISO 및 JP 날짜 표준을 달성합니다.

이 문제를 해결하기 위해 필요하지는 않지만 자연어 날짜/시간 파서를 확인하는 것이 좋습니다. 만성병 환자, 그것은 나에게 많은 일을 몇 번 저축했습니다.

아마도 주간 형식을 기대할 수 있으므로 첫 번째 가치는 14 개월의 5 일을 지정하려고합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top