0

実際の日付と時刻をミリ秒に変換し、他のタイムゾーン GMT+3 に変換する必要があります (私のタイムゾーンは GMT-2 です)。私はこのコードを使用しますが、時間は返されますが、私のタイムゾーンに....なぜですか?

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-3"));
cal.get(Calendar.DAY_OF_MONTH);
cal.get(Calendar.MONTH);
cal.get(Calendar.YEAR);
cal.get(Calendar.HOUR_OF_DAY);
cal.get(Calendar.MINUTE);
cal.get(Calendar.SECOND);
cal.get(Calendar.MILLISECOND);
long timez = cal.getTime().getTime();
4

3 に答える 3

0

SimpleDateFormat を使用する必要があります。Calendar は常に、マシンに設定されているデフォルトのタイムゾーンを使用します。SimpleDateFormat を使用してこの機能を実現する方法の例を次に示します。

于 2012-05-03T14:59:16.810 に答える
0
Date date = new Date();
  DateFormat firstFormat = new SimpleDateFormat();
  DateFormat secondFormat = new SimpleDateFormat();
  TimeZone firstTime = TimeZone.getTimeZone(args[0]);
  TimeZone secondTime = TimeZone.getTimeZone(args[1]);
  firstFormat.setTimeZone(firstTime);
  secondFormat.setTimeZone(secondTime);
  System.out.println("-->"+args[0]+": " + firstFormat.format(date));
  System.out.println("-->"+args[1]+": " + secondFormat.format(date));
  }

ここで、arg[0] と arg 1は 2 つのタイム ゾーンです。このリンクを参照してください

于 2012-05-03T15:03:03.670 に答える
-1

getTime() メソッドは同じ時刻を返します。タイムゾーンとは関係ありません。

于 2012-05-03T14:59:47.543 に答える