You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Velocity模板语言(VTL)中获取Unix时间戳?

Velocity模板获取Unix时间戳的方法

在Velocity模板中完全可以通过默认提供的$date变量(对应Velocity Tools的DateTool工具类)实现Unix时间戳的转换/获取,常用方案如下:

方案1:使用格式符直接获取(最简单)

DateTool的format方法支持格式符U,可直接返回秒级Unix时间戳:

  • 获取当前时间的秒级Unix时间戳:$date.format('U')
  • 将指定格式的日期转换为秒级时间戳:
    #set($targetTime = $date.toDate("yyyy-MM-dd HH:mm:ss", "2024-05-20 15:30:00"))
    $date.format('U', $targetTime)
    

方案2:通过Java Date原生方法获取(兼容性最高)

可以先拿到Date对象,调用其原生getTime()方法得到毫秒级时间戳,再按需转换为秒级,该方案不受Velocity Tools版本限制:

  • 获取当前时间毫秒级Unix时间戳:$date.toDate().getTime()
  • 获取当前时间秒级整数时间戳:$math.round($date.toDate().getTime() / 1000)
  • 自定义日期转换为毫秒时间戳示例:
    #set($myDate = $date.toDate("yyyy年MM月dd日", "2024年06月01日"))
    #set($timestamp = $myDate.getTime())
    

如果你的Velocity环境没有默认注入DateTool,也可以直接调用后端传入模板的Java Date类型变量的getTime()方法,同样可以拿到对应时间戳。

内容的提问来源于stack exchange,提问作者Mikhail Borisov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:27:09