我试图在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
在形成者中有什么不对吗?
答案 0 :(得分:0)
您没有格式化输出,而只是解析了。
格式化:将
Date
转换为String
(format
方法)
解析:将String
转换为Date
(parse
方法)
要格式化,您需要这样做:
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')