Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在velocity模板中将字符串转换为日期?_Java_Spring_Apache_Velocity_Velocity Tools - Fatal编程技术网

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

Java 如何在velocity模板中将字符串转换为日期?,java,spring,apache,velocity,velocity-tools,Java,Spring,Apache,Velocity,Velocity Tools,我想将$departureFromDate(格式:yyyy-MM-dd)转换为date对象,以便对其执行增量操作。我一直在尝试以下方法: #set($departureFromDate = "{{jsonPath request.body '$.departureFromDate'}}") #set($dateObj = $date.toDate('yyyy-MM-dd',"$departureFromDate")) #set($calendar = $date.getCalendar())

我想将$departureFromDate(格式:yyyy-MM-dd)转换为date对象,以便对其执行增量操作。我一直在尝试以下方法:

#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()
,并且不需要在字符串参数周围加双引号)

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


最后一条建议是,如果您还没有想到它,请确保在您的上下文中打印
$obj
$obj.class.name
,如果您不了解发生了什么,这是一种微不足道的调试技术。

为什么
{{jsonPath request.body'$.departureFromDate'}}
可以工作?我正在从json请求中获取日期元素。请求中的日期格式为(yyyy-MM-dd)。实际上,我可以通过$departureFromDate使用显示的日期。只有当我试图像上面那样使用$departureFromDate来获取日期对象时,它才不起作用。
#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)