を参照してください。いずれの場合においても
、あなたはそれがすでにjava.util.Date
た場合でも、文字列に変換元receipt.arPaymDate
(あなたがそこに空の文字列に挿入される)として、<#assign createdOn='${receipt.arPaymDate}'>
が、<#assign createdOn=receipt.arPaymDate>
を書くべきではありません。それがString
だった場合、それは何もしないので、不必要な冗長さです。
receipt.arPaymDate
がjava.util.Date
あり、そしてあなたが'${...}'
せずに割り当てを行う場合は、?datetime(...)
一部のみ?date
部分は必要ありません:${createdOn?date}
を。 (receipt.arPaymDate
は時間、それが唯一の日付部分を保存するために知られていて、java.sql.Date
でない場合でも、?date
を省略することができる。)
receipt.arPaymDate
が文字列なので、あなたが今までにそれを解析する必要がある場合は、あなただけの${createdOn?date("MMM dd yyyy HH:mm:ss 'GMT'Z")}
を書くことができます。パターンに時間の部分があることは問題ではなく、結果は日付のみの値としてマークされます(?date
)。
また、明確でない場合もありますが、この例の割り当ては不要です。 1つは${receipt.arPaymDate?date}
と書くことができます。
FreeMarkerは '?date'を使用しているので、表示されている例のエラーメッセージはほとんどありません。そのため、FreeMarkerは日付のみの値であることを認識します。 – ddekany
'$ {createdOn?datetime(...)}'は 'createdOn'が' Date'になることを期待しています。しかし、 'createdOn = '$ {...}''で初期化しています。これにより 'String'(引用符で囲まれた値)になります。 '<#assign createdOn = receipt.arPaymDate />'を試してください。 – manish