2011-02-01 12 views

答えて

3

ワン[かなり厄介]方法:

"1/2/08".sub! /\/(\d{2})$/, '/20\1' 

は、しかし、ちょうど日付オブジェクトに文字列を解析する方が良いと思いませんか?その後、それを日付として適切に扱うことができます! :)

+0

私はあなたができると思った。しかし、Date.parse( "1/2/09")では、Date.parse( "1/2/2009")とはまったく異なります – Trip

+0

これは機能します! Date.parse( "12/1/08"、comp = true).year – Trip

+0

これに注意してください。 "1/2/2008"を取得した場合、置換はnilを返します。 –

1

「/」に分割することができます。最後のコンポーネントの長さが2の場合は、20を前置してから再度組み立てます。正規表現を使用して

+0

ありがとうございます!それは動作します! – Trip

0

は、あなたが戻って一緒に文字列を入れて

(.*/)(..)$ 

を使用して文字列を分割し、その後

$120$2 

のようなもので置き換えることができ(http://www.regexplanet.com/simple/でテスト済み)。

あなたは20世紀の日付のために何が起こるか考えなければならないかもしれません - このアプローチは21/01/98として21/01/2098と認識します。盲目的に正規表現ではなく、正しく文字列を解析する方が良い!

関連する問題