gpt4 book ai didi

json - 无法将类为 'parseDate' 的对象 'java.lang.String' 转换为 grails 中的类 'java.util.Date'

转载 作者:行者123 更新时间:2023-12-01 12:40:45 25 4
gpt4 key购买 nike

我是 grails 的新手,想学习,在此代码中,我正在创建 jsonDate 并在创建方法中使用。当我从 SoapUi 发送数据时,出现类似 Cannot cast object '13/01/2014' with class 'java.lang.String' to class 'java.util.Date' 的错误。

class RequestMainController {
static scaffold = true
static allowedMethods = [save: "POST", updat``e: "PUT", delete: "DELETE"]
def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
respond RequestMain.list(params), model:[requestMainInstanceCount: RequestMain.count()]
}

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
//System.out.println(Current Date + sdf.format(new Date());
String mydate = "01-08-2011";
Date parseDate = sdf.parse(mydate);

def slurper = new JsonSlurper()
def requestMain = slurper.parseText('{"milestoneSequenceNumber":"111","recordStartDate":"13/01/2014",
"recordEndDate":"13/01/2014","application":"app","applicationType":"A""}');

def create(){
//def jsonObject = grails.converters.JSON.parse(requestMain)
def milestoneSequenceNumber = requestMain.milestoneSequenceNumber
def recStartDate = requestMain.recordStartDate
def recEndDate = requestMain.recordEndDate
def application = requestMain.application
def applicationType = requestMain.applicationType
System.out.println(" MILESTONE_SEQ_NO = $milestoneSequenceNumber,REC_START_DATE = $recStartDate, REC_START_DATE=$recEndDate,APPLICATION=$application,APPL_TYPE=$applicationType)

render(view:"create", action:"save")
}

def save() {
RequestMain requestMain1 = new RequestMain()

requestMain1.mimeNo = requestMain.milestoneSequenceNumber
requestMain1.recStartDate = requestMain.recordStartDate
requestMain1.recEndDate = requestMain.recordEndDate
requestMain1.application = requestMain.application
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
String mydate = "01-08-2011";
Date parseDate = sdf.parse(mydate);
requestMain1.save()
render "Success!"
}
}

最佳答案

实际上,您在在线保存中遇到的错误-

 Date parseDate = sdf.parse(mydate);

是因为您不能将日期字符串直接更改为 SimpleDateFormat。因此,您需要将其更改为 Date 类对象。

String mydate = "01-08-2011";
def parsedDate = Date.parse("yyyy-MM-dd", mydate);
Date parseDate = sdf.parse(parsedDate);

虽然这样做也是不合逻辑的,因为 parsedDate 已经是 Date 类的对象,因此您无需再次转换它。

如果您出于任何特定原因不使用 SimpleDateFormat,您始终可以使用以下方法-

  1. 将日期更改为特定格式的字符串-

    def myStringDate = dateObj.format("yyyy-MM-dd");
  2. 将字符串更改为日期

    def myDate = Date.parse("yyyy-MM-dd", myStringDate);

这些方法更加 GROOVYish,将使您的工作变得轻松。

可以使用 java 文档中指定的格式制作这些传递日期格式- http://docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html

关于json - 无法将类为 'parseDate' 的对象 'java.lang.String' 转换为 grails 中的类 'java.util.Date',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25046600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com