Freemarker模型转换时间戳毫秒到日期



我有一个csv文件,我想用fmpp (freemarker)转换。第一列是一个长值(自1.1.1970以来的毫秒),我想将其转换为日期并将其格式化为datetime。

src格式:

timeStamp,elapsed,label,responseCode,threadName,dataType,success,bytes,URL,Latency
1319115474244,40142,Login,200,Login 1-2,text,true,862184,http://localhost:8080/xxx,5378

理想的目标格式:

timeStamp;elapsed;label;responseCode;threadName;dataType;success;bytes;URL;Latency
20.12.2011 13:45;40142;Login;200;Login 1-2;text;true;862184;http://localhost:8080/xxx;5378

My (running) template:

<#list csv.headers as h>${h}<#if h_has_next>;</#if></#list>
<#list csv as row>
<#list csv.headers as h><#if h_index == 0>Do the date magic<#else>${(row[h]!"N/A")?string}</#if>$<#if h_has_next>;</#if></#list>
</#list>

对于第0列,我想进行转换。我不想写一个包含日期的新模型。我的问题是,这可以在模板中完成而不修改freemarker或fmpp.

任何想法?

FreeMarker 2.3.17为此引入了?number_to_date?number_to_time?number_to_datetime。见:http://freemarker.org/docs/ref_builtins_expert.html ref_builtin_numToDate

您还需要设置日期/时间格式和区域;看到http://fmpp.sourceforge.net/settings.html sect17

也许你将不得不升级FMPP中的FreeMarker。为此,只需将<FMPP_HOME>/lib/freemarker.jar替换为最新版本。

在我的情况下,我使用这个:

${(时间戳)number_to_date ?字符串("yyyy.MM.dd")}

number_to_date替换为number_to_datetimenumber_to_time;

您可以根据需要将yyyy.MM.dd替换为YYYY-MM-dd HH:mm:ss

检查:http://freemarker.org/docs/ref_builtins_expert.html ref_builtin_numToDate

相关内容

  • 没有找到相关文章

最新更新