【问题标题】:NumberFormatException For input string when try to do a date search in grailsNumberFormatException 尝试在 grails 中进行日期搜索时输入字符串
【发布时间】:2016-05-26 09:04:59
【问题描述】:

我从 gsp 视图中得到一个带有日期和时间的字符串:

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

现在,我想按日期和名称在我的域中进行搜索。所以,我加入日期和时间并进行搜索:

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

但是,我收到了这个错误:

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

【问题讨论】:

    标签: grails grails-orm


    【解决方案1】:

    将您的String 转换为Date,然后再将其传递给findByNameAndDateCreatedGreaterThan,例如

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

    【讨论】:

    • 我的方法有问题:The method build Thu Apr 28 18:17:42 BST 2016 但我需要得到这种格式:“2016-04-28 18:17:42”
    • @D.O.如果您的日期不是yyyy-MM-dd HH:mm:ss 格式,那么您需要更改传递给Date.parse 的格式字符串以匹配您使用的任何格式。如果可能,我会尝试更改 params 以便以更简单的格式传递日期,例如星期几是多余的
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 2018-08-20
    • 2011-12-08
    • 2021-03-20
    • 1970-01-01
    相关资源
    最近更新 更多