You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JasperSoft 6.1 CE服务器如何适配dd/mm/yyyy格式日期输入?

问题背景

我的JasperSoft版本信息如下:

<serverInfo><build>BUILD_DATE_STAMP_BUILD_TIME_STAMP</build><dateFormatPattern>yyyy-MM-dd</dateFormatPattern> <datetimeFormatPattern>yyyy-MM-dd'T'HH:mm:s:s:s:ss</datetimeFormatPattern> <edition>CE</edition><version>6.1</version> </serverInfo>

在localhost:8080/jasperserver/本地生成报表时,发现日期类型输入框中的“20/05/2018”在发送给JasperServer前会被转换为“2018-05-20”。

我有一套通过REST调用Jasper的ERP系统,应用中日期格式固定为dd/mm/yyyy,因无源码权限无法修改该格式。现咨询:是否可修改JasperServer使其支持dd/mm/yyyy格式的日期输入?


可行解决方案

针对你的JasperServer 6.1 CE版本的需求,我整理了几个实操性强的方案,你可以根据实际情况尝试:

方案1:全局修改JasperServer的日期格式配置

这个方案会让整个JasperServer系统默认支持dd/MM/yyyy格式的日期输入,步骤如下:

  • 找到JasperServer安装目录下的WEB-INF/bundles/jasperserver_messages.properties文件(如果是多语言环境,对应语言的properties文件,比如中文环境找jasperserver_messages_zh_CN.properties)
  • 找到并修改以下两个配置项为目标格式:
    date.format=dd/MM/yyyy
    date.time.format=dd/MM/yyyy HH:mm:ss
    

    注意:这里要用大写的MM代表月份,小写mm是分钟的意思,别写错导致日期解析出错

  • 接着检查WEB-INF/applicationContext.xml中的日期格式化bean,确保它关联了上述配置:
    <bean id="dateFormatter" class="org.springframework.format.datetime.DateFormatter">
        <constructor-arg value="#{T(com.jaspersoft.jasperserver.api.common.util.spring.PropertiesUtil).getProperty('date.format')}"/>
    </bean>
    
  • 最后重启JasperServer服务,让配置生效

方案2:针对单个报表修改参数日期格式

如果不想全局调整,只想让特定报表支持该格式,可以这么操作:

  • 打开JasperStudio,打开目标报表文件
  • 选中报表里的日期类型参数,在右侧属性面板找到Format Pattern,设置为dd/MM/yyyy
  • 重新将报表发布到JasperServer,该报表的日期参数就会接受并解析dd/MM/yyyy格式的输入了

方案3:自定义REST请求拦截器(进阶方案)

如果上述配置修改受限,还可以通过开发自定义扩展来处理:在JasperServer端添加一个REST请求拦截器,自动将请求中dd/MM/yyyy格式的日期转换为系统默认的yyyy-MM-dd格式。不过这个方案需要一定的Java开发能力,适合有技术储备的场景。


内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:27:06