我的应用程序中有 2 个事件。我需要他们两个之间的时间差,所以我使用这行代码将时间存储在 sharedpreferences 中:
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();
}
}
然后我使用这个计算两个日期和时间之间的差异:
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 小时。
为什么它与时区有任何联系?