Freemarker中的日期差异
Posted
技术标签:
【中文标题】Freemarker中的日期差异【英文标题】:Date Difference in Freemarker 【发布时间】:2021-06-15 17:34:36 【问题描述】:我需要 freemarker 中两个日期之间的差异。一个日期来自系统,而另一个日期必须硬编码为 18/02/2021。
任何人都可以指导我如何做到这一点,因为我面临解析问题。
到目前为止我的代码:
<#assign difference=(record.trandate?long / 86400000)?round - (hardcodedDate?long / 86400000)?round />
record.trandate
是系统的日期,而hardcodedDate
是我输入的日期。
我尝试在下面分配两者,但没有工作:
<#assign hardcodedDate = "Feb 18, 2021 2:07:30 PM" />
<#assign hardcodedDate = "Mar 18, 2021 2:07:30 PM" />
最后,所需要的只是两个日期之间的差异。
【问题讨论】:
【参考方案1】:hardcodedDate
被声明为字符串,你必须将其转换为日期,使用date
内置。
例如:
<#assign date1 = "Feb 18, 2021 12:07:30 PM"?date("MMMM d, yyyy h:mm:ss a") />
<#assign date2 = "Mar 18, 2021 2:07:30 PM"?date("MMMM d, yyyy h:mm:ss a") />
<#assign difference=(date1?long / 86400000)?round - (date2?long / 86400000)?round />
【讨论】:
应该是?datetime
。由于您仅将结果用于?long
,因此在这种情况下并不重要,但在其他用例中可能会造成混淆,因为如果您打印该值,时间部分将不会显示。
完美运行!非常感谢@obourgain以上是关于Freemarker中的日期差异的主要内容,如果未能解决你的问题,请参考以下文章
显示日期 - 长格式的三天减去 Freemarker 中的年份