有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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;
}

共 (3) 个答案

  1. # 1 楼答案

    毫秒是1/1000秒。所以4小时等于4*60*60*1000=14400000

    对于缓存失效,这可能没问题。也就是说,约会数学通常是危险的。当处理大于毫秒的时间单位时,人们很容易在夏时制转换、闰秒和日历要处理的所有其他事情中出错。在某些情况下,罕见的不精确是可以接受的,而在另一些情况下则不然。做约会数学时要小心

    要以更大的时间单位(如+1天)确定人类消耗的时间,请使用日历。滚动()

  2. # 2 楼答案

    4 * 1000 * 3600
    

    一秒钟有1000毫秒,一小时有3600秒

  3. # 3 楼答案

    学会使用方便的TimeUnit枚举,这样你就可以这样做:

    TimeUnit.Hours.toMillis(4)
    

    不要在你的代码中依赖餐巾纸数学和魔法数字