与语言环境相关的 Java DynamicReports 格式日期

标签 java jasper-reports date-formatting

我正在使用 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/

相关文章:

Java Bean : how <jsp:setProperty> in <jsp:useBean> is generated into Java Code

java - 服务内的((按钮) View )不起作用

java - 直接或在继承接口(interface)中注释的切入点匹配方法?

pdf - 导出为 PDF 时如何获得非英语支持?

java - iReport:带有子报表的预览报表告知参数

mysql - 从 MySQL date_format 中的 %m 和 %d 中删除前导零

javascript - 为什么这个日期转换需要在月份上加1?

javascript - ApexCharts:热图工具提示格式化程序

java - 如何创建两行ListView

java - 如何在条形图中显示每个条形的条形值?