我想将$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
作为简单的调试技术。