0

テーブルの詳細に表示タグを使用しています。日時をユーザーのローカル ブラウザー設定に変更したいのですが、DB のデータは UMT です。ユーザーがインド出身の場合、+5:30 などを追加します。どうすればこれを行うことができますか。私はこれで立ち往生しています。私を助けてください。

4

2 に答える 2

0

このように試しましたか??

Locale cLoc=request.getLocale();
Calendar cCal=Calendar.getInstance(cLoc);
TimeZone tz=cCal.getTimeZone(); 
//......
于 2013-03-04T15:03:45.950 に答える
0

パーティーには少し遅れましたが、他の誰かが必要な場合に備えて、ここで回答してください.

Display.tag はMessageFormatColumnDecorator内部的に使用MessageFormatして、"format" パラメータ セットを持つすべての列にフォーマッタを適用します。

したがって、オプションは次のとおりです。

  1. 独自のカスタムを作成しますMessageFormatColumnDecorator。残念ながら、それはColumnTagコードに組み込まれており、簡単に置き換えることはできません (デコレータはチェーンされています)。そのため、独自の Display.Tag jar のコピーをカスタム デコレータとともにコンパイルする必要があります。

カスタム デコレーターで、次のサンプル コードを使用してMessageFormatのタイムゾーンを変更します。

TimeZone tz = //get your timezone here
Object [] formats = format.getFormats(); //'format' is MessageFormat instance
for (int i = 0; i < formats.length; i++) {
  if (formats[i] instanceof SimpleDateFormat) {
    ((SimpleDateFormat)formats[i]).setTimeZone(tz);
  }
}
  1. 2 番目のオプションは、<fmt:formatDate>Display.tag 列タグ内を使用して出力をフォーマットすることです。

サンプルコード:

<display:table name="dateList" id="object">
  <display:column title="Date">
    <fmt:formatDate value="${object.date}" type="both" dateStyle="long" timeStyle="long"/>
  </display:column>
</display:table>

デフォルトのリクエストロケールを設定する<fmt:formatDate>か、タグでラップして<fmt:timeZone>、使用するタイムゾーンを設定できます。

于 2014-11-08T08:13:39.250 に答える