2016-06-28 14 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」ですか?このため、2桁の年は不合理です。 1980年代と1990年代には、矛盾しない数字の豪華さがありましたが、2032年にはそこに戻ります。 – tadman

+0

@tadmanまあ、Rails Colossus全体は_conventions_の地下に建てられています。結局、 '01/02/2016'は同じあいまいさを持っています。 'DateTime'は' 'June Jun YY''を' 'June、day XX、今世紀のYY年代 ''として扱います。 – mudasobwa

+0

@tadman年月の数字、月の文字、年のローマンを使用してください:'17 June MMXVI'。 – mudasobwa

0

はdatetimeオブジェクトに変換してから他の日付時刻オブジェクトと比較?

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

time_one > time_two 
1

あなたの日付文字列を解析するために、Rubyの標準ライブラリからDateモジュールを使用して、<=>を使用してそれらを比較することができます。ところで

、あなたは「純粋な」ルビー環境(ではないのRailsコンソール)で作業している場合は、あなたのコードにそれを含める必要があるだろうが:[Rubyの解析日付文字列]の

require 'date' 

Date.parse("26 Jun'17") > Date.today    # => true 
関連する問題