【问题标题】:Date locale in JasperReportsJasperReports 中的日期区域设置
【发布时间】:2014-07-27 13:16:05
【问题描述】:

我正在用 Java 编写一个程序,它使用 JasperReports 来生成报告。报告的字段之一是日期字段。我这样发送语言环境变量:

    Map parametersMap = new HashMap();
    parametersMap.put(JRParameter.REPORT_LOCALE, myLocale2);

这工作正常,但问题是时间也出现在日期字段中。我在 MySQL 中使用了 DATE() 函数,但我仍然在报告中不断获取时间。我只需要显示日期(在正确的语言环境中)。如果我在报告中设置模式变量,以便日期以特定格式显示,则时间不会出现,但这会取消语言环境设置,我不希望这样。有人可以告诉我如何摆脱时间信息吗?

【问题讨论】:

    标签: java mysql jasper-reports


    【解决方案1】:

    你可以试试这个:

    1. 使用参数发送您的格式化日期。 例如:

    parametersMap.put("date", new SimpleDateFormat("MMM dd yyyy", Locale.FRANCE) .format(new Date()));

    在您的报告中设置此日期。

    享受吧。

    【讨论】:

      【解决方案2】:

      user1791574 提供的答案对我来说效果很好。但是,我找到了一种更好的方法,特别是如果日期字段出现在多个记录的子报告中。在这种情况下,无法将日期作为参数发送,因为我们不知道子报表中有多少记录。我找到的解决方案是从http://community.jaspersoft.com/questions/532484/default-date-format-only-date 获得的,它包括使用以下代码:

      DateFormat.getDateInstance(DateFormat.SHORT, $P{REPORT_LOCALE}).format( $P{MyDateParam} )
      

      这两种方法都运行良好,但这种“更自然”的方式是 jasper 报告完成工作,而不是用户通过额外的代码行完成工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-29
        • 2020-03-07
        • 1970-01-01
        • 2013-04-11
        • 2011-01-22
        • 2018-07-02
        • 2018-02-12
        相关资源
        最近更新 更多