如何在速度模板中将字符串转换为日期?



我想将$departureFromDate(格式:yyyy-MM-dd)转换为日期对象,以便我可以对其执行增量操作。我一直在尝试通过以下方式做到这一点:

#set($departureFromDate = "{{jsonPath request.body 
'$.departureFromDate'}}")
#set($dateObj = $date.toDate('yyyy-MM-dd',"$departureFromDate"))
#set($calendar = $date.getCalendar())   
$calendar.setTime($dateObj)  
$calendar.add(6,5)

如果给出实际日期,则上面的代码有效,例如:

#set($dateObj = $date.toDate('yyyy-MM-dd',"2018-09-22"))

但是当我尝试使用$departureFromDate时不起作用

你的代码中有几个问题。首先,正如user7294900所指出的,第一个赋值的正确值似乎很奇怪。然后,你不需要给自己一个日历实例化(另外,你可以写$date.calendar而不是$date.getCalendar(),你不需要在字符串参数周围用双引号)。

#set($body = '{ "departureFromDate" : "2018-03-01" }')
$json.parse($body)
#set($departureFromDate = $json.departureFromDate)
#set($dateObj = $date.toDate('yyyy-MM-dd', $departureFromDate))
#set($calendar = $date.toCalendar($dateObj))
$calendar.add(6, 5)

上面的代码使用 JSON 解析工具,其parse()方法呈现一个 json 包装器,您将在上下文中提供该包装器。

作为最后的建议,如果您还没有想到它,如果您不了解会发生什么,请务必在您的上下文中打印$obj$obj.class.name作为简单的调试技术。

相关内容

  • 没有找到相关文章

最新更新