我正在尝试使用Jasper Reports的Java程序。当我发现“日期”是字符串格式,并且因此被排序,虽然以错误的方式排序时,开始作为(据称)简单的“按降序排列日期”任务变得更加复杂。例如:
我只能猜测10/26/11被放在底部只是因为前面的10个。
我使用iReport 3.0.0查看了Jasper报告,我发现了以下内容:
这不会产生任何错误,只会使按“降序”安排“日期”变得困难,如果不是不可能的话。
所以我做了以下事情:
在新字段表达式中添加了以下内容:
new SimpleDateFormat(“MM-dd-yyyy”)。parse($ F {DTEEFFEC} .toString())
在对我的问题进行一些研究后,我发现了一些代码。许多回应都是“它有效”,但对我来说并非如此。
Caused by: java.text.ParseException: Unparseable date: "03/26/2012"
这就是Java程序返回的内容。我尝试过修改字段和textField(在String或Date值之间交替),但它完全给了我其他错误。
我可以帮忙解决这个问题吗?
感谢。
其他信息:我正在使用iReports 3.0.0来修改JRXML文件,使用Eclipse来修改Java程序。如果要相信Eclipse下的Referenced Libraries,我正在使用JasperReports 3.5.2。整个过程都在Windows 7上运行。
答案 0 :(得分:8)
看看你的代码:
new SimpleDateFormat("MM-dd-yyyy").parse(...)
显然期待“MM-dd-yyyy”这样的形式,例如“03-26-2012”。
现在查看实际数据:“03/26/2012”。 (显然,即使您之前的样本是两位数的年份......)
这是斜线,而不是破折号。所以你需要适当地改变你的模式:
new SimpleDateFormat("MM/dd/yyyy").parse(...)
答案 1 :(得分:2)
将new SimpleDateFormat("MM-dd-yyyy")
更改为new SimpleDateFormat("mm/dd/yyyy")
因此解析器可以正确解析您的日期输入