2

以下の行を実行すると、

    System.out.println(java.util.TimeZone.getDefault());

次の出力が得られました。

  sun.util.calendar.ZoneInfo[id="Asia/Calcutta",
  offset=19800000,
  dstSavings=0,
  useDaylight=false,
  transitions=6,
  lastRule=null]

System.out.println(Locale.getDefault());与える

`en_US` 

私の疑問は

私がいるとき、どうすればいいのLocaleですか?en_USZone idAsia/Calcutta

最初の出力では、何が何であるか理解できませんでしたoffset, dstSavings, useDaylight, transitions and rules ?

誰でもこれらを理解するのに役立ちますか。

前もって感謝します...

4

2 に答える 2

2

LocaleTimeZone必要に応じて、オーストラリアでフランス語でコンピューターをセットアップできます...そのためにフランスのタイムゾーンは必要ありません。

TimeZone について詳しく知るには、論文を読む必要があります。

使用夏時間

public abstract boolean useDaylightTime()

このタイム ゾーンが夏時間を使用するかどうかを問い合わせます。

サマータイムとは?

getDSTSavings

public int getDSTSavings()

ローカルウォールクロック時間を取得するために、ローカル標準時間に追加される時間を返します。

したがって、これは UTC + TimeZone + (DSTSavings - 0 または 1 時間) の差です。現在 DST 節約モードの場合は、1 時間を返します。

規則

ルールとは、DST がアクティブになる日付と、それがなくなる日付を意味します。詳細情報SimpleTimeZone

トランジション

この配列は、生のオフセットの変更と夏時間の変更の両方を含む、このタイム ゾーンの GMT オフセットの遷移を記述します。長整数は 4 つのビット フィールドで構成されます。

最上位の 52 ビット フィールドは、グレゴリオ暦 1970 年 1 月 1 日 00:00:00 GMT からの遷移時間をミリ秒単位で表します。次の 4 ビット フィールドは予約されており、0 である必要があります。次の 4 ビット フィールドは、移行時の夏時間の量のオフセット [] へのインデックス値です。この値がゼロの場合は、インデックス値ゼロではなく、夏時間がないことを意味します。最下位の 4 ビット フィールドは、遷移時の合計 GMT オフセットの offsets[] へのインデックス値です。

このタイム ゾーンが夏時間を遵守せず、過去に GMT オフセットを変更したことがない場合、この値は null です。

于 2013-05-31T05:13:57.893 に答える
2

Locale.getDefault() が実際にどのように機能するかを理解するには、この質問を確認してください。

あなたの出力についてはSystem.out.println(java.util.TimeZone.getDefault());

  1. DST Savings: 基本実装は、夏時間を使用するタイム ゾーンの場合は 3600000 (1 時間) を返し、そうでないタイム ゾーンの場合は 0 を返します。
  2. オフセット: これは、GMT に対するタイムゾーンのオフセットです。インドの場合、19800000 ミリ秒である 5 時間 30 分です。
  3. UseDaylight: これは、このタイムゾーンには夏時間調整がないことを示しています。
  4. 移行: これは、タイムゾーンの夏時間の移行を指します。
  5. LastRule: 最後の GMT オフセットと DST スケジュールを表す SimpleTimeZone オブジェクトを返すか、このタイム ゾーンが DST を遵守しない場合は null を返します。

お役に立てれば。

于 2013-05-31T05:24:35.550 に答える