0

デバイスのタイムゾーンが正しくない場合、時間は誤った値を返しますが、カレンダーは機能します。私のアプリはTimeを使用して作成されており、そのままにしておきたいのですが、タイムゾーンの問題を修正する必要があります。

Calendar c = Calendar.getInstance(); 
String out= c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE);
Toast.makeText(this,  ""+out, Toast.LENGTH_SHORT).show();
//returns correct time

Time currentTime = new Time();
currentTime.setToNow();
Toast.makeText(this,  currentTime.format("%H:%M"), Toast.LENGTH_SHORT).show();
//returns incorrect time
4

1 に答える 1

0

これが役立つかどうかはわかりませんが、私は非常にローカライズされたアプリを持っているので、 res/strings.xml 変数からタイムゾーンを強制します。

このようなもの:

Calendar currentTime = Calendar.getInstance(); 

SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm aa");
dateFormat.setTimeZone(TimeZone.getTimeZone(context.getString(R.string.app_timezone)));

Toast.makeText(this, dateFormat.format(input.getTime()), Toast.LENGTH_SHORT).show();

次に res/strings.xml で

<string name="app_timezone">GMT+8:00</string>
于 2013-03-11T01:49:45.170 に答える