【问题标题】:Velocity - add days to date string using date.tocalender functionVelocity - 使用 date.tocalender 函数将日期添加到日期字符串
【发布时间】:2018-01-07 04:40:18
【问题描述】:

我正在使用 Velocity(集成在我们公司的软件中)对电子邮件模板进行编码,但是我正在努力寻找上述解决方案。

该软件将策略开始日期存储为 ${POLSDATE} 变量,但是我需要能够在该日期上添加 14 天,我尝试了以下方法(以及其他几种变体):

#set ($rendate_14 = $date.toCalendar(${POLSDATE}))
$rendate_14.add(5,14)

"$rendate_14" 没有添加打印一个逗号分隔的数据数组(本例中的日期是 01/08/17):

java.util.GregorianCalendar[time=1501585201000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/London",offset=0,dstSavings=3600000 ,useDaylight=true,transitions=242,lastRule=java.util.SimpleTimeZone[id=Europe/London,offset=0,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=- 1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA =1,YEAR=2017,MONTH=7,WEEK_OF_YEAR=31,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=213,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=0 ,SECOND=1,MILLISECOND=0,ZONE_OFFSET=0,DST_OFFSET=3600000]

...但是添加 .add(5,14) 它根本不会打印任何信息。

有什么想法吗?

【问题讨论】:

  • 我的问题是输出是“java.util ...”位而不是格式化日期,只需添加$date.format('d MMMM yyyy',$rendate_14)(或类似名称)即可解决问题!

标签: java velocity date-formatting


【解决方案1】:

很简单: java.util.Calendar#add is a void method,当然什么也不打印。

试试下面的代码:

#set ($rendate_14 = $date.toCalendar(${POLSDATE}))
$rendate_14.add(5,14)
$rendate_14

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多