2012-03-16 25 views
1

私はユーザーから2つの日付をとります。2つのGroovyの日付を比較します

<g:datePicker name="now"/> <g:datePicker name="early"/> 

その後、私のコントローラで:

if((params.early).compareTo(params.now)==0) { 
    early=new Date(1970,1,1) 
} 
else { 
    //do something 
} 

他の部分は、日付が同じであっても実行なっています。 groovyで日付を比較するにはどうすればよいですか?

+0

場合(params.ear == params.now) :あなたは日付を取得していることを確認するために、日付型coersionを使用\t \t { \t \t \t \t耳=新しい日付(0160,0,1)//ここでプロジェクトのリリース \t \t \t \t log.info(耳) \t \t \t \tの開始日の日付を作る=のparams .now他 \t \t \t} \t \t \t \t \t \t { \t \t \t \t耳= params.ear \t \t \t \t今= params.now \t \t \t } – nandini

+0

これが働いているだけの質問は年がに解釈されている方法です。 0160はログ結果によると2011です。 – nandini

答えて

0

あなたは何を得るのですか?彼らは文字列ではないと確信していますか?彼らが日付である場合、彼らは時間の要素を持っています - これは彼らが平等ではない理由かもしれません。

あなただけ行うことができるはず:

if(params.early == params.now) { 
    early = Date.parse("yyyy/MM/dd", "1970/01/01") 
} 
else { 
    // do something 
} 

それとも、彼らは、時間成分と日付です(そして、あなたが日付でちょうど興味を持っている)場合:

if(params.early.clearTime() == params.now.clearTime()) { 
    early = Date.parse("yyyy/MM/dd", "1970/01/01") 
} 
else { 
    // do something 
} 
+0

私はを使っています。ユーザーから日付を取得するために nandini

+0

そう、彼らは日付でなければなりません。あなたがそれらを印刷するとき、彼らは同じであると確信していますか? –

+0

ええ、彼らは最後に最後に付加された時間と同じです – nandini

0

(params.early).compareToの部分が正しいかどうかわかりません。

とにかくcompareTo == 0の代わりにequalsを使用しないでください。私は意味:あなたはparams.earlyparams.nowをプリントアウトした場合

if (params.early == params.now) { 
    //.... 
} else { 
    //.... 
} 
+0

でも動作しません。私は最初にこの同じコードを試しました。時間は両方で同じです。 – nandini

+0

'params.early'と' params.now'の実際の値を表示できますか? –

+0

日付が同じであってもif部分が自動的に実行されない – nandini

0

私は考え

params.date('early').compareTo(params.date('now')) == 0 
+0

http://mrhaki.blogspot.com/2012/01/grails-goodness-date-request-parameter.html –

関連する問題