テーブルの詳細に表示タグを使用しています。日時をユーザーのローカル ブラウザー設定に変更したいのですが、DB のデータは UMT です。ユーザーがインド出身の場合、+5:30 などを追加します。どうすればこれを行うことができますか。私はこれで立ち往生しています。私を助けてください。
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" パラメータ セットを持つすべての列にフォーマッタを適用します。
したがって、オプションは次のとおりです。
- 独自のカスタムを作成します
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);
}
}
- 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 に答える