首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Freemarker模型将毫秒为单位的时间戳转换为日期

Freemarker模型将毫秒为单位的时间戳转换为日期
EN

Stack Overflow用户
提问于 2011-10-21 15:11:07
回答 2查看 17.1K关注 0票数 5

我有一个csv文件,我想用fmpp (freemarker)进行转换。第一列是一个长值(自1970年1月1日以来的毫秒数),我希望将其转换为日期并将其格式化为日期时间。

src格式:

代码语言:javascript
复制
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

理想的目标格式:

代码语言:javascript
复制
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

我的(运行)模板:

代码语言:javascript
复制
<#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的情况下,能否在模板中做到这一点。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-21 16:41:54

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即可。

票数 26
EN

Stack Overflow用户

发布于 2016-11-09 14:43:13

在我的情况下,我使用的是:

${(timeStamp)?number_to_date?string("yyyy.MM.dd")}

number_to_date替换为number_to_datetimenumber_to_time

如果需要,您可以用YYYY-MM-dd HH:mm:ss替换yyyy.MM.dd

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7846105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档