Date型のフィールドをレンダリングするときにカルチャを指定する

samatsu 3/22/2016 1203 N/A Sitecore Programming

DateやDate TimeフィールドをDate Webコントロールでレンダリングする場合、 特に何も指定しない場合、UIスレッドのカルチャを使用して日付の情報が出力されます。例えば、次のようなマークアップを記載した場合を考えます。

<sc:Date runat="server" Field="Sample Date" Format="yyyy/MMMM/dd"  />

サーバーのOSが日本語バージョンの場合は例えば ja-JPになるので、次のようになります。

2016/6月/01 

en-USの場合は次のようになります。

2016/June/01 

ここで問題になるのが、日本語のOSを使用してSitecoreが動いている場合、英語バージョンのコンテンツを出力しているにもかかわらず、日本語の形式で月が出力されるということです。その逆も同じで、日本語コンテンツを出力しても英語の月名が出力されてしまいます。

Dateコントロールで書式だけでなくカルチャも指定した場合は次のように culture パラメーターを指定してください。

<sc:Date runat="server" Field="Sample Date" Format="yyyy/MMMM/dd" Parameters="culture=en-US" />

これだけで簡単にカルチャを指定して日付の形式をフォーマットできます。