Calendar 使用Velocity查找本月底

Calendar 使用Velocity查找本月底,calendar,velocity,marketo,Calendar,Velocity,Marketo,我刚刚开始使用Marketo的邮件脚本, 我需要知道本月的最后一天 我可以在下面找到当前日期。我如何进一步 #set($date = $date.calendar) #set($current_date = $date.format('yyyy-mm-dd', $date.getTime())) $current_date 参考这里,, 我试着从下个月初减去1天,但是没有用 知道这个月的天数也符合要求。您尝试的方法应该有效。我认为您的问题在于您正在使用工作变量覆盖最初包含日期工具的$date。

我刚刚开始使用Marketo的邮件脚本, 我需要知道本月的最后一天

我可以在下面找到当前日期。我如何进一步

#set($date = $date.calendar)
#set($current_date = $date.format('yyyy-mm-dd', $date.getTime()))
$current_date
参考这里,, 我试着从下个月初减去1天,但是没有用


知道这个月的天数也符合要求。

您尝试的方法应该有效。我认为您的问题在于您正在使用工作变量覆盖最初包含
日期工具的
$date
。当Velocity Tools
org.apache.Velocity.Tools.userCanOverwriteTools
配置值为
true
(默认值)时,Velocity将允许您覆盖
$date
,但
日期工具此后将不可用

例如,尝试将工作变量更改为
$cal
。然后,您有几种方法:

#set($cal = $date.calendar)
$cal.add(2, 1)
$cal.set(5, 1)
$cal.add(5, -1)
$date.format('yyyy-MM-dd', $cal)


在所有情况下,您都会使用
Calendar.MONTH
Calendar.DATE
常量(分别为2和5)。您可能希望将这些实用程序操作放在自己的Java工具中,以获得更可读的模板。

您尝试的方法应该可以工作。我认为您的问题在于您正在使用工作变量覆盖最初包含
日期工具的
$date
。当Velocity Tools
org.apache.Velocity.Tools.userCanOverwriteTools
配置值为
true
(默认值)时,Velocity将允许您覆盖
$date
,但
日期工具此后将不可用

例如,尝试将工作变量更改为
$cal
。然后,您有几种方法:

#set($cal = $date.calendar)
$cal.add(2, 1)
$cal.set(5, 1)
$cal.add(5, -1)
$date.format('yyyy-MM-dd', $cal)

在所有情况下,您都会使用
Calendar.MONTH
Calendar.DATE
常量(分别为2和5)。您可能希望将这些实用程序操作放在自己的Java工具中,以获得更具可读性的模板