93

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

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

4

4 回答 4

185

怎么样System.currentTimeMillis()

来自 JavaDoc:

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

Java 8引入了该java.time框架,特别是Instant...对时间线上的 ... 点进行建模... ”的类:

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

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

干杯,

于 2012-12-05T19:52:09.967 回答
54

java.time

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

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

于 2015-12-23T14:14:51.857 回答
17

也试试System.currentTimeMillis()

于 2012-12-05T19:52:36.637 回答
-1

你也可以试试

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

getTimeInMillis() - 当前时间,距纪元的 UTC 毫秒数

于 2019-09-02T15:46:43.497 回答