Windows2003サーバーにブログをインストールした場合。 通常問題なく動作するが、他のOSで動作させ保存したブログデータをコピーするとエラーログに日付の変換が出来ないエラーが出てブログが表示されない。 「Couldn't parse date of ・・・」
原因:
JVMのロケールの違いで月のパターン「MMM」の解釈が違うため。
たとえば、ja_JPで「6」の場合、
en_USでは「Jun」となる。
Windows2003サーバーのWeb EditionはMUI(Multilingual User Inteface)によって日本語がサポートされ、ベースが英語版のためJVMのデフォルトロケールが「en_US」にセットされている。
解決方法:
他の環境のデータを移行する場合に、Tomcatの起動オプションを使ってそのロケールに合わせる。
-Duser.language=ja
-Duser.country=JP
-Duser.region=JP
本来格納されるデータの日付形式は、ロケールに依存しないフォーマットである必要があります。
しかしパターン「MMM」によって期待する「Jun」などの表記はRFCで標準化されているので日本語ロケールでそのパターンがないのが問題とも言えます。
(「MMM」で「Jun」、「MMMM」で「6月」といった拡張が必要かも)
とりあえず、上記オプションで対応しますが、書式パターンについては今後互換性を保って修正します。
|
よろしければ、教えてください。
よろしくお願いします。