0

Webアプリケーションを持っています。米国の時間を示しています。インドの時間を見せてほしい。プロパティuingSystem.getProperty().setProperty("user.country","IN");を設定してみましSystem.getProperty().setProperty("user.variant","IN");たが、まだ使用時間が表示されています。

私も試しLocale.setDefault(new Locale("en", "IN"));ましたが無駄でした。

私がこれをするとき

SimpleDateFormat format = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa -- z");
System.out.println("Date: "+format.format(new Date())); 

結果はDate: 02013.March.14 AD 12:29 AM -- GMT-08:00です。私は何を間違っているのですか。

これは、Tomcat6にデプロイされたJSF1.1およびHibernate3プロジェクトです。

前もって感謝します。

4

3 に答える 3

2

これを試して

    SimpleDateFormat f = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa -- z");
    f.setTimeZone(TimeZone.getTimeZone("IST"));
    System.out.println(f.format(new Date()));
于 2013-03-14T08:51:02.017 に答える
1

次の行を追加します。

format.setTimeZone(TimeZone.getTimeZone("IST"));
于 2013-03-14T08:51:58.787 に答える
0

あなたの質問は紛らわしいです。本当にアメリカの時間ですか?JSFのデフォルトはUTCです。それが実際に米国時間(たとえばEDT)である場合は、すべてのタグtimeZoneの属性でそのように明示的に構成されている必要があります。<f:convertDateTime>「EDT」を「IST」に変更するだけです。しかし、これは非常に明白な解決策であるため、実際には米国時間ではなく、UTCだけを実行していると思います。

問題を解決しようとする試みも混乱を招きます。あなたはJSFを使用していると言ってタグを付けましたが、それをJSFの方法ではなく、プレーンJavaの方法で解決しようとしています。これは、JSFで日付/時刻を変換する方法ではありません。あなたは<f:convertDateTime>仕事のために使うべきであり、ではありませんSimpleDateFormat

いずれの場合も、属性を<f:convertDateTime>明示的に設定するようにすべてのタグを構成する必要があります。timeZoneIST

<h:outputText value="#{bean.date}">
    <f:convertDateTime timeZone="IST" />
</h:outputText>

JSF 2.xを使用している場合は、web.xmlこの変更をアプリケーション全体に適用するためのコンテキストパラメータを設定することもできます。f:convertDateTimeのデフォルトのタイムゾーンを設定するも参照してください。

于 2013-03-14T11:11:26.503 に答える