Mengonversi Freemarker Tanggal

Saya mencoba membuat yang berikut ini berfungsi tetapi saya tidak bisa menampilkan nilai yang benar.

Dengan asumsi SHIPPING_DATE diperlakukan sebagai string dengan nilai = 23/05/2016:

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

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

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

Outputnya adalah 12/05/0190 tetapi saya mengharapkan 23/05/2016. Akankah seseorang membantu tetapi juga menjelaskan kesalahan saya?


person Nathan    schedule 06.07.2016    source sumber
comment
Koreksi kecil: * ‹#assign ship_date›${SHIPPING_DATE}‹/#assign›   -  person Nathan    schedule 07.07.2016
comment
Atau lebih tepatnya hanya <#assign ship_date = SHIPPING_DATE>, karena SHIPPING_DATE sudah menjadi string. Yang pada gilirannya membuat seluruh tugas tidak diperlukan...   -  person ddekany    schedule 07.07.2016


Jawaban (1)


Jika Anda memiliki string di ship_date seperti 2016/05/23, Anda dapat menguraikannya menjadi nilai tanggal sebenarnya dengan ship_date?date("yyyy/MM/dd"). Perhatikan bahwa ini bukan MM/dd/yyyy, seperti pada contoh Anda. ?date berarti "konversi ke tanggal", dan Anda menentukan cara menafsirkan string tersebut. Kemudian, ketika Anda mencetak nilai tanggal sebenarnya (bukan string) dengan ${...}, maka akan diubah menjadi string sesuai pengaturan konfigurasi data_format, sehingga MM/dd/yyyy akan bagus. Tidak masalah bagaimana nilai tanggal sebenarnya diperoleh (seperti dengan string?date(format) atau langsung dari model data).

person ddekany    schedule 07.07.2016
comment
Ini berhasil! Terima kasih atas bantuan dan penjelasannya. Saya salah mengartikan fungsi ?date. Saya tidak menyadari bahwa menyatakan ini adalah tanggal, saya pikir saya memerlukan sesuatu yang ekstra untuk mengubahnya. Ini sangat membantu. - person Nathan; 07.07.2016
comment
Biasanya, kata benda dan kata sifat setelah ? berarti ‹sesuatu›. Seperti ?upper_case artinya huruf besar, ?string artinya string. Dan, Anda seharusnya menerima jawabannya (tambahkan tanda centang itu). - person ddekany; 07.07.2016