Grails中日期格式的输出错误

时间:2016-05-13 13:32:30

标签: java grails date-format simpledateformat

我试图在Grails中格式化Date,这是我在控制器中的代码:

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
empRefInstance.startDate=sdf.parse(params.startDate)
empRefInstance.endDate=sdf.parse(params.endDate) 
println ("dates " + empRefInstance.startDate +" "+empRefInstance.endDate)

根据我定义的格式输出应该是01-05-2016但是以这种格式输出两个日期

Sun May 01 00:00:00 EEST 2016

在形成者中有什么不对吗?

2 个答案:

答案 0 :(得分:0)

您没有格式化输出,而只是解析了。

  

格式化:将Date转换为Stringformat方法)
  解析:将String转换为Dateparse方法)

要格式化,您需要这样做:

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
// First you are converting the incoming date string to a date
empRefInstance.startDate = sdf.parse(params.startDate)
empRefInstance.endDate=sdf.parse(params.endDate)

// Now we have to conert the date object to string and print it
println ("dates " + sdf.format(empRefInstance.startDate) + " "+sdf.format(empRefInstance.endDate))

当您在Groovy / Java中打印Date对象时,将调用toString()的默认实现,因此您获得的输出如Sun May 01 00:00:00 EEST 2016

此外,Groovy在format类中添加了Date方法以指示允许格式化。你甚至可以使用它。

println("dates " + empRefInstance.startDate.format("dd-MM-yyyy") + " " + empRefInstance.endDate.format("dd-MM-yyyy"))

答案 1 :(得分:0)

格式化程序没有任何问题。你没有使用一个输出。这样的东西会给你预期的输出:

println empRefInstance.startDate.format('dd-MM-yyyy')