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

Pau*_*ulG 61 java date

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

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

And*_*rup 136

怎么样System.currentTimeMillis()

来自JavaDoc:

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

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

long now = Instant.now().toEpochMilli();
Run Code Online (Sandbox Code Playgroud)

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

干杯,

  • 由于这个答案是2012年,而Java 8并不存在,因此它是一个很好的答案.同样好的是来自Prezemek的java.time答案.这考虑了当前的Java 8 java.time框架. (3认同)

Prz*_*mek 41

java.time

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

import java.time.Instant;

Instant.now().toEpochMilli(); //Long = 1450879900184
Instant.now().getEpochSecond(); //Long = 1450879900
Run Code Online (Sandbox Code Playgroud)

这适用于UTC,因为Instant.now()它真的是调用Clock.systemUTC().instant()

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


Ale*_*lov 13

也试试 System.currentTimeMillis()