2016-06-28 1 views
-4

날짜 열에 dd mmm'yy (예 : 26 Jun'17)가 있습니다.이 날짜는 Ruby를 사용하여 만료되었는지 확인해야합니다. 어떻게 할 수 있습니까?날짜가 만료/통과되었는지 확인하는 방법은 무엇입니까?

감사합니다!

+0

가능한 복제 [루비 구문 분석 날짜 문자열] (http://stackoverflow.com/questions/21391953/ruby-parse-date-string) –

+0

나는 야생의 많은 데이터 형식을 보았지만 그 중 하나는 정말로 난처하게 어색하다. – tadman

+0

나는 그 질문이 닫혀 있기 때문에 지명 된 표본과 중복되는 것을 표시하고 싶지 않습니다. 나는이 질문이 불분명하다고 생각한다. 날짜 문자열을 파싱하거나 날짜가 만료되었는지 또는 둘 다 확인하는 데 도움이 필요합니까? 만료되었는지 확인하는 데 도움이 필요한 경우 "만료되었습니다"는 의미는 무엇입니까? 날짜가 일정한 날짜보다 오래되었는지 알 필요가 있다는 것을 의미합니까? 또는 그것은 오늘날보다 훨씬 더 오래된 시대입니까? –

답변

1
d = "26 Jun'17" 
#⇒ "26 Jun'17" 
▶ Date.today >= Date.parse(d.tr("'", ' ')) 
#⇒ false 

Date#parse는 "6월 26일 17"이해 :

▶ Date.parse d.tr("'", ' ') 
#⇒ #<Date: 2017-06-26 ((2457931j,0s,0n),+0s,2299161j)> 
+0

2016 년 또는 2017 년에 '16 Jun 17 '입니까? 이런 이유로 두 자리 연도가 터무니 없습니다. 1980 년대와 1990 년대에는 비 충돌 숫자의 사치가 있었지만 2032 년까지는 우리가 다시 그 궤도를 돌고 있습니다. – tadman

+0

@tadman 글쎄, 전체 레일 거상 _conventions_의 지하에 지어졌습니다. 결국'01/02/2016'은 같은 모호성을 가지고 있습니다. 'DateTime'은''June Jun YY''를''June, day XX, century century YY ''로 취급하고 있습니다. – mudasobwa

+0

@ tadman 1 년 동안 숫자를 사용하고, 몇 달 동안 로마자를 써야하며, '6 월 17 일 MMXVI'를 사용해야합니다. – mudasobwa

0

는 날짜 객체로 변환 한 후 다른 날짜 시간 개체를 비교?

time_one = DateTime.new(2001,2,3) 
time_two = DateTime.new(2001,1,3) 

time_one > time_two 
1

당신은 당신의 날짜 문자열을 구문 분석 루비의 표준 라이브러리에서 Date 모듈을 사용하고 <=>를 사용하여 비교할 수 있습니다. 당신이 "순수"루비 환경에서 (안 레일 콘솔) 작업하는 경우 그런데

, 당신은 당신의 코드에 포함해야 할 것 :

require 'date' 

Date.parse("26 Jun'17") > Date.today    # => true 
관련 문제