2012-10-29 2 views
1

나는 사용자가 복수 날짜 형식을 입력하고 웹 페이지를 통해 파일을 가져올 수 있도록 허용하는 내 csv의 생일 열이 있습니다. 현재 열은 한 가지 유형의 형식으로 만 설정됩니다. :birthday => (Date.strptime(row[2], "%mm/%dd/%YY") rescue nil),. 여러 날짜 형식을 사용할 수 있습니까? 감사합니다.csv 파일 가져 오기를 위해 Ruby on Rails에서 여러 날짜 형식을 허용하려면 어떻게해야합니까?

답변

2

대신 Date.parse을 시도해보십시오

날짜 및 시간의 주어진 표현을 구문 분석하고, 날짜 개체를 만듭니다.

선택적인 두 번째 인수가 참이고 감지 된 연도가 "00"에서 "99"범위에있는 경우 연도를 2 자리 양식으로 간주하여 가득 차게 만듭니다. 예를 들어

: 당신이 더 많은 제어가 필요한 경우

Date.parse('2001-02-03')   #=> #<Date: 2001-02-03 ...> 
Date.parse('20010203')   #=> #<Date: 2001-02-03 ...> 
Date.parse('3rd Feb 2001')  #=> #<Date: 2001-02-03 ...> 

, 당신은 항상 당신의 자신의 구문 분석 방법을 정의 할 수 있습니다.

+0

'Date.parse'를 시도했지만 저에게 적합하지 않았습니다. 아마도 당신은 내 코드를 사용하여 예제를 줄 수 있습니까? 감사. –

+1

사실, Date.parse는 완벽하게 작동했습니다. 처음에는 제대로 작성하지 않았습니다. 그래서, 이렇게해라. (Date.parse (row [2]) rescue nil)'충분했다. –

0

Rails의 DateTime은 자동으로 형식을 감지하려고합니다. 다음 형식을 감지합니다 : mm/dd/yy 또는 dd-mm-yy 또는 yyyy-mm-dd 또는 yyyy/mm/dd.

그렇지 않으면 파일에있는 형식으로 다른 구문 분석을 시도하는 고유 한 메서드를 작성해야합니다.

+0

감사합니다. 나는 Rails 형식을 알고 있으며 실제로 필요한 것은 이러한 세 가지 형식을 모두 한 가지 방법으로 구현하는 방법입니다. 이것은 형식을 확인한 다음 날짜를 표로 파싱 할 수있는 사례 명세서로 안내하지만 아직 시도하지는 않았습니다. –

관련 문제