Java DynamicReports格式日期与语言环境有关
作者:互联网
我正在使用DynamicReports API生成报告.
我正在设置报告的语言环境并设置报告的日期列的格式,但是无论语言环境是什么,日期的格式总是像10/12/2009 10:54:44 AM.
代码如下:
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?
解决方法:
我也尝试了Parameter Map,但没有成功
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);
标签:date-formatting,jasper-reports,java 来源: https://codeday.me/bug/20191127/2074831.html