calendar - 使用 Velocity 查找当前月末
问题描述
我刚刚开始使用 Marketo 的邮件脚本,我需要找出当月的最后一天。
我可以在下面找到当前日期。我该怎么做?
#set($date = $date.calendar)
#set($current_date = $date.format('yyyy-mm-dd', $date.getTime()))
$current_date
请参阅此处, 从速度的日期减去几个月 我试图从下个月的开始减去 1 天,但它不起作用。
知道这个月的天数也符合要求。
解决方案
您尝试的方法应该有效。我认为你的问题是你正在用你的工作变量覆盖$date
- 它最初包含- 。DateTool
当 Velocity Toolsorg.apache.velocity.tools.userCanOverwriteTools
配置值为true
(默认值)时,Velocity 将允许您覆盖$date
,但DateTool
此后将不可用。
因此,请尝试将您的工作变量更改$cal
为例如。然后,您有几种方法:
#set($cal = $date.calendar)
$cal.add(2, 1)
$cal.set(5, 1)
$cal.add(5, -1)
$date.format('yyyy-MM-dd', $cal)
或者
#set($cal = $date.calendar)
$cal.set(5, $cal.getActualMaximum(5))
$date.format('yyyy-MM-dd', $cal)
在所有情况下,您都使用Calendar.MONTH
andCalendar.DATE
常量(分别为 2 和 5)。您可能希望将此类实用程序操作放入您自己的 Java 工具中,以获得更易读的模板。
推荐阅读
- sql - 如何以特定格式转置 SQL 中的表?
- excel - 比较excel中的两列,并复制第二列底部的差异
- .net - C# JSON:反序列化 Web API 中枚举中的字符串?
- python - glob.glob 在读取多个 csv 文件时返回一个空列表
- typescript - 实现 webview 和处理回调
- domain-driven-design - XML 生成器类的 DDD 组件
- laravel - 如何使用租赁 laravel 从存储文件夹中获取图像
- javascript - 这个 jQuery 的 JavaScript 等价物是什么?
- r - 根据data.table中一列的值更改多列的值
- android - 如何在按下回车键时使多行属性为假?