我想将$ 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时,它不起作用
答案 0 :(得分:1)
您的代码中存在几个问题。首先,正如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
作为一个简单的调试技术,如果你不明白会发生什么。