${(.vars["OCRResponse"].Date)?datetime("ANY RANDOM FORMAT")?string("mm-dd-yy").
我们可以在If Else
中使用?datetime
,还是可以通过使用切换大小写来解决此问题?
答案 0 :(得分:1)
如果该日期格式相当“随机”,并且您需要执行很多操作,那么最好编写一个freemarker.core.TemplateDateFormat
+ TemplateDateFormatFactory
实现,在其中执行复杂的日期解析逻辑Java,然后将工厂注册为“自定义日期格式”(这是FreeMarker配置设置),假设名称为"random"
。然后,您可以执行${OCRResponse.Date?date.@random?string('MM-dd-yy')}
。如果将date_format
配置设置设置为MM-dd-yy
,则甚至可以只写${OCRResponse.Date?date.@random}
。
您可以在此处找到定义自定义格式的具体示例:https://freemarker.apache.org/docs/pgui_config_custom_formats.html
另一种可能性是当然使用#if
/ #elseif
/ #else
。如果您需要在多个位置执行此操作,则将解析器逻辑放入#function
中的#return
解析日期。因此,在您插入日期的地方,您只会看到类似${parseRandom(OCRResponse.Date)}
的内容(这里我假设date_format
是MM-dd-yy
,否则添加?string('MM-dd-yy')
)。