如何计算java中TimeStamp的分钟数?

Gur*_*lki 1 java

我想计算TimeStamp的分钟数.怎么做?例如

我的TimeStamp值为13/11/10 1:01 PM.从现在开始,我需要在几分钟内得到它吗?

希望我清楚谢谢

Jon*_*eet 9

Timestamp是一个java.util.Date更精确的 - 所以假设你不太关心nanos,只需要getTime()它自从纪元以来得到millis:

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);
Run Code Online (Sandbox Code Playgroud)

请注意,为了测试性,我个人不会使用System.currentTimeMillis- 我有一个接口(例如Clock)代表"当前时间服务",并注入它.然后你就可以轻松拥有一个假时钟.

编辑:我假设你已经有一个解析的价值.如果你没有,只有一个字符串,你需要先解析它.我个人推荐Joda Time作为一个比内置的更好的日期和时间API,除非你有特殊的理由不使用它.


Ade*_*ari 5

假设值在String.

  1. 使用SimpleDateFormatparse()方法解析该字符串
  2. 从您获得长期的时间Date使用对象getTime()
  3. 采取不同的System.currentTimeMillis()和长期收到的getTime()
  4. 将其除以 1000,然后除以 60

假设该值在Timestamp,跳过步骤1和2,并注意小号在时间小号夯实是小写字母。