2011-12-20 17 views
0

フォーマットされた日付(07/11/1990のような)を取得して19900711に変換するにはどうすればよいですか?おそらく正規表現といくつかの置換?Rubyの解析日

+0

恐らく重複しているhttp://stackoverflow.com/questions/6214144/ruby-convert-string-to-date – Hauleth

+0

[Ruby String to Date Conversion]の可能な複製(http://stackoverflow.com/questions/3599239/) ruby-string-to-date-conversion) –

答えて

5
require 'date' 

DateTime.strptime('07/11/1990', '%m/%d/%Y').strftime('%Y%m%d') 

私のために働く。

+0

この 'date'メソッドと上記の' time'メソッドとの大きな違いは同じですか? – 585connor

+0

strptimeは私が推測するより多くの制御を持っています。例えば > Time.parse( '07111990') に障害が発生したが、 > DateTime.strptime( '07111990'、 '%のM%のD%Y') がまだ動作します。しかし、Time.parseが動作する限り、それはより簡潔なコード方法かもしれません。 – barley

+0

@ 585connor: 'strptime'アプローチでは、日付の書式を指定することができます。また、使用されているさまざまな日付書式が推測よりも良いかもしれません。 OTOH、私は[ISO 8601](http://en.wikipedia.org/wiki/ISO_8601)をすべて使用しています... –

0

dateVar.gsub("/","")のような効率的な方法を使用できます。勿論あなたが日付を保存のだ変数のdateVarを交換

+1

OPは単に '/'を取り除くだけではなく、数値を並べ替えることもあります。 –

4

時間のクラスをあなたの友人である:。

1.9.2p290 :002 > puts Time.parse('07/11/1990').strftime("%Y%d%m") 
--> 19900711 

あなたがが動作するように、このためにrequire "time"する必要があるかもしれません。出力形式の詳細については、文字列形式の時刻を参照してください。

+0

ありがとう、これはうまくいくようです。 – 585connor

+0

私はそれがルビの最新バージョンでのみ動作するとは思いませんか? – rendon

+0

私が触ったすべてのバージョンのrubyには、1.8.5に戻って来ています。 – Eugene