0

在我的 jasperReport 中,我有一个 java.sql.Timestamp 数据类型的输入控件。现在使用此输入控件,用户可以在运行报表之前选择日期。现在,当我在报表中复制 datepicker(输入控件)的下划线参数时,我会在报表中获得用户选择的确切时间。

我的要求是格式化用户选择的日期。所以我写了一个简单的函数,比如

public static String convertDateToString(java.sql.Timestamp inputDate)
{
    System.out.println("The input Date is :: "+inputDate);
    String s = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss.S").format(inputDate);
    System.out.println("The output Date is :: "+s);
    return s;
}

现在,当浏览器和 jasperserver 处于同一时区时,这可以正常工作,但是当服务器处于不同时区时,输入日期与打印日期不同

4

1 回答 1

3

你可以试试这个我在 iReport 中使用过的。

1:-Create a Parameter “DateFormatter” with 
   class="java.text.DateFormat" and set default value

  default value =[$P{REPORT_FORMAT_FACTORY}.createDateFormat("yyyy-MM-dd 
    HH:mm",$P{REPORT_LOCALE}, java.util.TimeZone.getTimeZone("IST"))

2:- 文本字段表达式:-

$F{ImportDate}== null ? "N/A" : $P{DateFormatter}.format($F{ImportDate})
于 2013-07-09T07:08:12.017 回答