2

我使用以下方法在 sharedPreferences 中分享了我当前的时间:

日期 date = new Date(System.currentTimeMillis());

SharedPreferences pref = getApplicationContext().getSharedPreferences("DataCountService", 0);
long millis = date.getTime();
SharedPreferences.Editor editor = pref.edit();
editor.putLong("smstimestamp", date.getTime());
editor.commit();

现在(稍后在源代码中稍后)我需要将当前时间与我保存在共享首选项中的时间进行比较,看看是否已经过了 30 天。

这样做的最佳方法是什么?

4

1 回答 1

8

首先,在这一行上,您应该更改为:

editor.putLong("smstimestamp", System.currentTimeMillis());

无需创建日期然后再次获取毫秒。

现在比较一下:

//             milli min  hour  day 30day
long days_30 = 1000 * 60 * 60 * 24 * 30;
SharedPreferences pref = getApplicationContext().getSharedPreferences("DataCountService", 0);
long oldTime = pref.getLong("smstimestamp");
if(System.currentTimeMillis() - oldTime > days_30){
      // here, more than 30 days
}
于 2013-06-19T21:45:33.887 回答