2010-04-09 92 views
1

我对这两个模板引擎有一个相当简单的问题。
我正在尝试创建一个未来/过去的日期,从现在开始的固定时间,例如18个月前或明天。Freemarker/Velocity - 日期操作

我知道可以用速度/自由标记模板(类似$date.add(2,-18))中的java日期对象来做到这一点,但我想用DateTool或freemarker核心来做到这一点。

这是我认为纯粹是表象的东西(只是想想在默认日期您在机票预订表单中看到),所以我看不到任何为什么模板引擎不应该能够做到这一点的原因。

虽然有可能吗?如果是这样,怎么样?

回答

1

在Velocity Tools中没有这种方法。

1

对于freemarker的,也许是:Built-ins for dates

+0

我已经看到那个文件夹页,我无法找到最新操纵任何引用,只是如何将其格式化,也许我错过了? – Razor 2010-04-09 15:31:21

+0

对不起,我想你需要编写自己的freemarker TemplateMethodModelEx为......看到这个帖子:在http://thread.gmane.org/gmane.comp.web.freemarker.user/4292 – Istao 2010-04-09 16:45:13

+0

计算两个日期之间的天这与我所需要的不同,但与速度工具相比,它看起来不像freemarker具有更好的日期操作可能性。 我在这里猜测,这是不可能做到我用这个引擎需要的。 – Razor 2010-04-10 14:06:43

1

可以在速度做到这一点,但不与DateTool(即所属的速度额外反正)。

这是一个很好的做法,与实用的表象仅供参考(你可以看到,使用速度怎么也得“格式”对象的各种框架)的各种实用程序“格式化”的对象。

所以,你的代码看起来像$ format.dateFromNow(),并且将有一个还是表象的方法。

2

我知道这是后真的老了,但是从未来的人们仍然在寻找一个答案:日期操作就能完成从毫秒转换日期/:

${(mydate?long - 18 * 86400000)?number_to_date?string("yyyy-MM-dd")} 

例如将减18天从mydate。 (注意:86400000是每天毫秒的量)

+0

这工作完美,谢谢! – mcryan 2018-01-16 00:09:05