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

Freemarker日期格式化遇解析异常及正则语法问题求助

问题排查与解决

1. 日期解析失败问题

你的日期字符串是标准ISO8601格式(带Z标识UTC时区),Freemarker默认的?datetime指令无法自动识别这种带Z的格式,需要显式指定解析格式才能正确转换。

修正后的代码:

content?datetime("yyyy-MM-dd'T'HH:mm:ss'Z'")?string['dd.MM.yyyy, HH:mm']
  • 用?datetime("格式")指定解析规则,把Z作为固定字符处理(用单引号包裹),确保Freemarker能正确识别整个日期字符串。
  • 之后再用?string['目标格式']转换成你需要的日期样式。

2. 正则表达式报错问题

错误原因:

  • Freemarker的正则表达式引擎不支持\d元字符,必须用[0-9]代替数字匹配。
  • 你原正则里的([+-][0-2][0-9]:[0-5][0-9]d|Z)多了一个多余的d,这会导致匹配逻辑错误,同时转义\d时会触发解析异常。

修正后的正则:

content?matches('[0-9]{4}-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]([+-][0-2][0-9]:[0-5][0-9]|Z)')
  • 去掉多余的d,修正分组匹配逻辑。
  • 全程用[0-9]代替\d,避免Freemarker的解析转义问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:01:06