编程语言
首页 > 编程语言> > Java DynamicReports格式日期与语言环境有关

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