在Freemarker中计算一个较旧的日期

时间:2015-12-07 15:28:22

标签: date freemarker

我需要创建一个日历控件来选择出生日期。我的自定义日历控件包含用于设置minDate和maxDate的字段,可用于设置可以选择的日期范围。

我可以将当​​前日期变为变量并将其用作maxDate,如下所示。

<#assign dateObject=.now/>
<#assign todaysDate=dateObject?date/>

如何以类似的方式计算100年前的日期?我阅读了官方文档,找不到任何可以执行此操作的操作。

1 个答案:

答案 0 :(得分:2)

您无意在MVC视图中计算此类内容...要显示的日期范围应来自数据模型。无论如何,你需要GregorianCalendar算术,而FreeMarker没有内置这样的东西。但是你可以编写一个Java方法来做,然后从模板中调用它。

BTW,这种天真的做法是(.now?long - 1000 * 60 * 60 * 24 * daysBefore)?numberToDate。这样做的问题是,如果.now接近午夜,则可能会有重复或跳过的日期,并且该范围内的某些天会遇到夏令时更改。