我正在使用 DynamicReports API 来构建报告。
我正在设置报告的区域设置并设置报告的日期列的格式,但日期的格式始终如10/12/2009 10:54:44 AM 无论Locale 是什么。
代码如下:
rep.setTemplate(Templates.reportTemplate.setLocale(res.getLocale()));
...
if (rs.getString(i).contains("00:00:00"))
rep.addColumn(col.column(title, name, type.dateType()));
else
rep.addColumn(col.column(title, name, type.dateYearToSecondType()));
有没有办法根据报告的区域设置自动设置日期格式,或者我是否需要使用自定义ValueFormatter?
最佳答案
我也尝试了参数映射但没有成功
JasperReportBuilder rep = report()
.setDataSource(query, conn.getConnection())
.setParameter(JRParameter.REPORT_LOCALE, res.getLocale());
.setTemplate(Templates.reportTemplate.setLocale(res.getLocale()));
无法自动格式化日期。 唯一的方法是根据语言环境为日期列使用模式。
TextColumnBuilder<Date> column = col.column(title, name, type.dateType());
if (res.getLocale().equals("EN") {
column.setPattern("dd.MM.yyyy");
}
else if (res.getLocale().equals("US") {
column.setPattern("MM/dd/yyyy");
}
else {
...
}
rep.addColumn(column);
关于与语言环境相关的 Java DynamicReports 格式日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12834891/