アプリケーションに2つのイベントがあります。2つの時間差が必要なので、次のコード行を使用して共有設定に時間を保存します。
public static void PutStatus(Context ctx,boolean stat)
{
if (ctx != null)
{
SharedPreferences shr = ctx.getSharedPreferences("test", Context.MODE_WORLD_READABLE);
shr.edit().putBoolean("SHIFT", stat).commit();
if (stat) shr.edit().putLong("START_TIME", System.currentTimeMillis()).commit();
}
}
次に、これを使用して2つの日付と時刻の差を計算します。
SharedPreferences shr = getApplicationContext().getSharedPreferences("test", Context.MODE_WORLD_READABLE);
long time_stamp = System.currentTimeMillis() - shr.getLong("START_TIME", 0);
Date data = new Date(time_stamp);
議事録はうまく機能していますが、時間は2時間進んでいます。
なぜそれがタイムゾーンと関係があるのですか?