сравнить две даты Groovy - PullRequest
       17

сравнить две даты Groovy

1 голос
/ 16 марта 2012

Я беру две даты от пользователя.

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

Затем в моем контроллере:

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

выполняется другая часть, даже если дата совпадает.как мы сравниваем дату в заводной?

Ответы [ 3 ]

0 голосов
/ 16 марта 2012

что вы получите, если распечатаете params.early и params.now? Вы уверены, что они не строки? Если они являются датами, имеют ли они временную составляющую - это может быть причиной того, что они не равны.

Вы должны просто быть в состоянии сделать:

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 голосов
/ 16 марта 2012

Я бы использовал приведение типа даты, чтобы убедиться, что вы получаете даты:

params.date( 'early' ).compareTo( params.date( 'now' ) ) == 0
0 голосов
/ 16 марта 2012

Я не уверен, что (params.early).compareTo часть верна.

В любом случае, почему бы не использовать equals вместо compareTo == 0? Я имею в виду:

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