在我的 jasperReport 中,我有一个 java.sql.Timestamp 数据类型的输入控件。 现在,使用此输入控件,用户可以在运行报告之前选择日期。现在,当我在报告中复制日期选择器(输入控件)的下划线参数时,我会在报告中获得用户选择的确切时间。
我的要求是格式化用户选择的日期。所以我编写了一个简单的函数,例如
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 位于同一时区时,这可以正常工作,但是当 服务器处于不同时区,输入日期与打印日期不同
最佳答案
你可以试试我在 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})
关于java - jasper 报告 JS 5.1 中的时区问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17456230/