2012-03-16 10 views
1

Я беру две даты от пользователя.сравнить две даты 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) \t \t \t { \t \t \t \t ухо = новая дата (0160,0,1) // сделать дату старта день выхода проекта \t \t \t \t log.info (уха) \t \t \t \t Теперь = Params .Теперь \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 согласно результатам журнала .how ???? – nandini

ответ

0

что вы получите, если вы распечатать 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

Я использовал Я использовал , чтобы получить дату от пользователя – nandini

+0

Правильно, поэтому они должны быть Датами. Когда вы распечатываете их, уверены ли вы, что они одинаковы? –

+0

Да, они точно такие же, что и время, добавленное в конце – nandini

0

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

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

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

даже если это не работает. Сначала я попробовал этот же код. и время одинаково для обоих. – nandini

+0

Можете ли вы показывать фактические значения для 'params.early' и' params.now'? –

+0

Если часть не выполняется, она автоматически приходит к другому, даже если даты одинаковы. – nandini

0

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

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

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

Смежные вопросы