代码之家  ›  专栏  ›  技术社区  ›  GuruKulki

如何从Java中的时间戳计算分钟?

  •  1
  • GuruKulki  · 技术社区  · 14 年前

    我想从时间戳中计算分钟数。怎么做?例如

    我的时间戳值是13/11/10 1:01 pm。从现在起我需要几分钟内拿到?

    希望我明白 谢谢

    3 回复  |  直到 8 年前
        1
  •  4
  •   Adeel Ansari    8 年前

    假设值在 String .

    1. 使用分析该字符串 SimpleDateFormat parse() 方法
    2. 把时间从你的 Date 对象使用 getTime()
    3. 区别于 System.currentTimeMillis() 长期以来 获取时间()
    4. 除以1000,再除以60

    假设值在 Timestamp ,跳过步骤1和2。和通知 S 及时 S 卫生棉条是小写的。

        2
  •  8
  •   Jon Skeet    8 年前

    Timestamp 是一个 java.util.Date 更精确一点-所以假设你不太在乎纳米技术,只需打电话 getTime() 从新纪元开始计算毫微秒:

    long now = System.currentTimeMillis(); // See note below
    long then = timestamp.getTime();
    
    // Positive if 'now' is later than 'then',
    // negative if 'then' is later than 'now'
    long minutes = TimeUnit.MILLISECONDS.toMinutes(now - then);
    

    注意,对于可测试性,我个人 不会 使用 System.currentTimeMillis -我会有一个接口(例如 Clock )表示“当前时间服务”,并注入它。你可以很容易地得到一个假钟。

    编辑:我假设你已经得到了一个解析值。如果您没有,而且只有一个字符串,那么您需要首先分析它。我个人推荐 Joda Time 作为一个更好的日期和时间API而不是内置的东西,除非你有一个特殊的理由不使用它。

        3
  •  1
  •   Michael Mrozek    14 年前

    你可以用 Timestamp.getTime() 以毫秒为单位获取时间。 System.currentTimeMillis() 将在当前时间内为您提供相同的内容。减去并除以 1000*60 将毫秒转换为分钟