2016-07-06 17 views
0

私は以下の作業をしようとしていますが、正しい値を表示できません。日付を変換するFreemarker

SHIPPING_DATEが値を文字列として扱われていると仮定= 2016年5月23日:

<#setting date_format="MM/dd/yyyy"> 
<#setting locale="en_US"> 

<#assign ship_date>${SHIPPING_DATE}</#assign> 

${ship_date?date("MM/dd/yyyy")} 

出力は12/05/0190ですが、私は2016年5月23日を期待してい。誰かが助けてくれますが、私が間違っていることを説明してくれますか?

+0

マイナーな修正:* <#船舶配達日> $ {配達日} Nathan

+0

または単に<<配達日時= SHIPPING_DATE>で、 'SHIPPING_DATE 'はすでに文字列です。今度は割り当てが不要になります... – ddekany

答えて

0

あなたは2016/05/23のようなship_date文字列を持っている場合は、ship_date?date("yyyy/MM/dd")と実際の日付値にそれを解析することができます。あなたの例のように、MM/dd/yyyyではないことに注意してください。 ?dateは "日付に変換"を意味し、文字列の解釈方法を指定します。次に、${...}で実際の日付の値(文字列ではない)を印刷すると、data_formatの設定に従った文字列に変換されるので、MM/dd/yyyyは良いでしょう。実際の日付の値がどのように得られたかはわかりません(string?date(format)のように、またはデータモデルから直接)。

+0

これはうまくいきました!ご協力いただきありがとうございます。私は?date関数を誤解していました。私は "これはデートです"と言っていたことを知らなかった、私は変換するために余分なものが必要だと思った。これは非常に役に立ちました。 – Nathan

+0

通常、 '?'の後の名詞や形容詞は「〜」を意味します。 '?upper_case'は大文字に、'?string'は "to文字列"を意味します。そして、あなたは答えを受け入れることになっています(それにチェックマークを付けてください)。 – ddekany

関連する問題