2016-05-26 7 views
0

ich von der gsp Ansicht, die einen String mit dem Datum und die Zeit zu tun bekommen:Number Für Eingabestring, wenn versuchen, ein Datum Suche in Grails

def name = params.name 
def time = params.minutes 
def date = params.datapicker 

Nun, ich mag nach dem Datum einer Suche in meiner Domain tun und Name. So schließe ich mich das Datum und die Zeit und machen die Suche:

def dataSearch = date + " " + time 
MyDomain result= MyDomain.findByNameAndDateCreatedGreaterThan(name, dataSearch) 

Aber ich diesen Fehler:

2016-05-26 09:56:44,488 [http-bio-8090-exec-3] ERROR errors.GrailsExceptionResolver - NumberFormatException occurred when processing request: [POST] /myClass/search- parameters: 

name: Bob 
minutes: 18:17:42 
button: search 
datapicker: 2016-04-28 
For input string: "2016-04-28 18:17:42". Stacktrace follows: 
Message: For input string: "2016-04-28 18:17:42" 
    Line | Method 
->> 65 | forInputString in java.lang.NumberFormatException 

Antwort

1

Konvertieren Sie Ihre String zu einem Date, bevor es zu findByNameAndDateCreatedGreaterThan vorbei, z.B.

def dataSearch = date + " " + time 
Date date = Date.parse('yyyy-MM-dd HH:mm:ss', dataSearch) 
MyDomain result = MyDomain.findByNameAndDateCreatedGreaterThan(name, date) 
+0

Ich habe ein Problem mit der Methode: Die Methode Do April 2016 28 18.17.42 BST bauen, aber ich brauche dieses Format zu erhalten: „2016.04.28 18.17.42“ –

+0

@ D.O. Wenn Ihr Datum nicht im Format "yyyy-MM-dd HH: mm: ss" ist, müssen Sie die an "Date.parse" übergebene Formatzeichenfolge ändern, damit sie mit dem Format übereinstimmt, das Sie verwenden. Wenn möglich, würde ich versuchen, die "Parameter" so zu ändern, dass das Datum in einem einfacheren Format, z.B. Der Wochentag ist überflüssig –