7

Java:タイムゾーン異なるタイムゾーンがミリ秒単位で同じ値を与える理由

上記のリンクを参照すると、CalendarクラスのgetTimeInMillis()は、タイムゾーンに関係なくミリ秒数を返すと思います。

ただし、次のコードを使用します。

 Calendar cal = Calendar.getInstance();
 int dateInSeconds = (int)(cal.getTimeInMillis()/1000);
 Log.i("TIME IN SECONDS: ",""+dateInSeconds);

最初に、システムクロックを10:00およびGMT + 02:00に設定しようとしました

特定の出力番号を生成します。ただし、システムクロックを10:00およびGMT + 00:00に設定する

出力数は前のケースよりも約7200大きく、これは約2時間に相当します。

なんで?

4

2 に答える 2

10

タイムゾーンに依存しないミリ秒数を取得するために、次の解決策を見つけました

それ以外の:

 int dateInSeconds = (int)(cal.getTimeInMillis()/1000);

私が使う:

 int dateInSeconds = (int)((cal.getTimeInMillis()+cal.getTimeZone().getOffset(cal.getTimeInMillis()))/1000);

それは私にとってはうまくいきます。

于 2012-10-29T16:42:18.800 に答える