2011-08-27 5 views
0

루비 1.8.7
Ruby 1.9.2의 구문 분석 시간은 Ruby 1.8.7과 다릅니다.

time_str = "Sun Feb 01 0111 00:00:00 GMT+0530 (IST)"<br /> 
Time.parse(time_str)<br /> 
output 
Tue Feb 01 00:00:00 +0530 2011 

루비이 구문 분석 1.9.2

time_str = "Sun Feb 01 0111 00:00:00 GMT+0530 (IST)"<br /> 
Time.parse(time_str)<br /> 
output <br /> 
0111-02-01 00:00:00 +0553 

당신은 정확히 문제가 무엇인지 말해 주시겠습니까?

시간이 루비 1.9.2에서 파싱 된 시간과 관련이 있습니까? (즉,이 날짜가 무엇 때문에)

Time.parse(time) {|y| 0 <= y && y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y} 
+0

111 광고 시대의 진정한 날짜를 다루고 있습니까? 아니면 오타입니까? – d11wtq

+0

1.9.2는 1.8.7보다 큰 날짜 범위를 처리 할 수 ​​있다고 생각합니다. 이 날짜를 2 세기의 날짜로 올바르게 처리하고 타임 존을 전환하는 것이 흥미로운 일을하는 것처럼 보입니다. – d11wtq

+0

@ d11wtq : 오타가 아닙니다. 내 입력은 0111입니다. 루비는 187을 2011로 변환하지만 루비 192는 도움이되지 않습니다. – suren

답변

2

루비 1.9.2은 2월 1일 당신에게 111 AD를 날짜를주고있다.

http://www.wolframalpha.com/input/?i=February+1st+111AD%3F. 1.8.7, 나는 오래 전의 날짜를 처리 할 수 ​​없다고 생각합니다.

루비 1.9.2이 올바른 일을하고 있습니다.

  1. 입력이 잘못 포맷, 111AD
  2. 당신은해야는 올해를 나타냅니다로 : 귀하의 의견은이 방법으로 작성된 것입니다,하지만 정말 한 후, 2011 년 대표로되어있는 경우

    입력 문자열을 사전 처리하여 구문 분석에 올바른 형식으로 만들 수 있습니다.