2012-10-11 143 views
3

我正在使用DynamicReports API來構建報告。有關語言環境的Java DynamicReports格式日期

我設置報告區域設置和格式化報告的日期列,但日期總是格式化像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

+0

您是否嘗試將其作爲'JRParameter.REPORT_LOCALE'添加到參數映射中? –

回答

3

我也tryed參數映射沒有成功

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); 
0

我設法以這種方式在動態碧玉中格式化日期字段。

ColumnBuilder time = ColumnBuilder.getNew(); 
time.setTitle("Login Time"); 
time.setWidth(200); 
time.setColumnProperty("emp.logintime", Date.class.getName()).setPattern("dd/MM/yyyy hh:mm:ss a"); 
drb.addColumn(time.build()); 
相關問題