我正在使用基于Stringtemplate4(ST)的ExcelExplorer处理Excel文件。 这些文件包含多个带日期的列。 默认情况下,日期以“MM / dd / yy”日期格式呈现。
有没有办法将日期呈现为“dd / MM / yyyy”?
java -Duser.language = fr -Duser.country = FR -Duser.variant = UTF-8 ......
renderRow(row) ::= <<
<row.MyDate; format="dd/MM/yyyy">
>>
虽然属性MyDate被定义为日期类型,但上述方法不起作用。我不想像Format date in String Template email
中提出的那样将MyDate定义为Java中的Date类型注意:检查后,我发现ExcelExporter / ST将属性MyDate定义为日期类型!
renderRow(row; format="dd/MM/yyyy") ::= <<
<row.MyDate>
>>
答案 0 :(得分:0)
您需要为要格式化的每个类将渲染器添加到STGroup中:
dir = STGroupDir(templateDirectory, '$', '$')
dir.registerRenderer(Number.class, NumberRenderer())
dir.registerRenderer(Date.class, DateRenderer())
现在,在我的模板中,我可以使用
<row.MyDate; format="dd/MM/yyyy">
格式字符串与java.text.SimpleDateFormat
或
<row.MyNumber; format="%,d">
格式字符串与java.util.Formatter
如果需要自定义格式器,请查看DateRenderer
,创建自己的格式器非常简单。
这里是文档:
https://github.com/antlr/stringtemplate4/blob/master/doc/renderers.md