Если у вас есть строка (не java.util.Date
), как в вашем примере, то сначала она должна быть проанализирована до Date
через ?date
/ ?datetime
? time
, где вы предоставляете формат из строки . (Учтите, что что-то вроде 20180102 не может быть однозначно проанализировано, если формат не указан.) В этот момент вы можете просто напечатать значение, и оно будет отформатировано в соответствии со значением по умолчанию datetime_format
(или date_format
и т. Д.) настроен для FreeMarker. Если этот формат не очень хорош, вы можете вызвать другой с помощью ?string(theFormatYouWant)
. Итак, в вашем случае:
<#assign createdOn = '20170101'>
Date="${createdOn?datetime("yyyyMMdd")?string("yyyy-MM-dd HH:mm:ss")}
Но опять же, как правило, вам не нужен ?string(...)
, вместо этого настройте предпочитаемый формат глобально.