java 4小时currentTimeMillis()
我有一个简单的问题,我有下面的函数,其中有一个参数叫做cacheTime
,我如何将它设置为4小时,我应该将它设置为4 * 3600000
public static File getCache(String name, Context c, int cacheTime)
{
if (cacheTime <= 0)
return null;
File cache = new File(c.getCacheDir(), name);
long now = System.currentTimeMillis();
if (cache.exists() && (now - cache.lastModified() < cacheTime))
return cache;
return null;
}
# 1 楼答案
毫秒是1/1000秒。所以4小时等于4*60*60*1000=14400000
对于缓存失效,这可能没问题。也就是说,约会数学通常是危险的。当处理大于毫秒的时间单位时,人们很容易在夏时制转换、闰秒和日历要处理的所有其他事情中出错。在某些情况下,罕见的不精确是可以接受的,而在另一些情况下则不然。做约会数学时要小心
要以更大的时间单位(如+1天)确定人类消耗的时间,请使用日历。滚动()
# 2 楼答案
一秒钟有1000毫秒,一小时有3600秒
# 3 楼答案
学会使用方便的TimeUnit枚举,这样你就可以这样做:
不要在你的代码中依赖餐巾纸数学和魔法数字