如何从Java中的纪元(1970-01-01)获得毫秒?

时间:2012-12-05 19:49:43

标签: java date

我需要从1970-01-01 UTC到现在的UTC中获得UTC的毫秒数。

我还希望能够获得从1970-01-01 UTC到任何其他UTC日期时间的毫秒数。

4 个答案:

答案 0 :(得分:123)

System.currentTimeMillis()怎么样?

来自JavaDoc:

返回: 当前时间与1970年1月1日午夜时间之间的差异(以毫秒为单位)

Java 8 引入了java.time框架,特别是Instant类“ ...模拟时间线上的...点... “:

long now = Instant.now().toEpochMilli();

返回: 自1970-01-01T00:00:00Z 的纪元以来的毫秒数 - 即与上述几乎相同: - )

干杯,

答案 1 :(得分:38)

java.time

使用Java 8及更高版本中内置的java.time框架。

import java.time.Instant;

Instant.now().toEpochMilli(); //Long = 1450879900184
Instant.now().getEpochSecond(); //Long = 1450879900

这适用于UTC,因为Instant.now()实际上是对Clock.systemUTC().instant()

的调用

https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html

答案 2 :(得分:12)

同时尝试System.currentTimeMillis()

答案 3 :(得分:0)

您也可以尝试

  Calendar calendar = Calendar.getInstance();
  System.out.println(calendar.getTimeInMillis());

getTimeInMillis()-当前时间(以纪元为单位,以UTC毫秒为单位)