以秒为单位获取日期表示?

Sam*_*Sam 13 java data-conversion java.util.date

我正在使用一个API,它需要一个日期参数作为秒数,一个int.

我的问题是我目前存储这个时间java.util.date,我想知道是否有某种方法将java.util.date变量转换为秒,以便我可以将它放入intAPI所需的参数中?

Kar*_*han 17

import java.util.Date;

... long secs =(new Date().getTime())/ 1000; ...

请参阅 - http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#getTime()


Sub*_*der 5

java.util.Date.getTime()它返回此 Date 对象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数:

java.util.Date date = new Date();
System.out.println(date.getTime());
Run Code Online (Sandbox Code Playgroud)

输出:1340128712111

要从毫秒中获取秒,您需要将其除以1000:

long secs = date.getTime()/1000;
System.out.println(secs);
Run Code Online (Sandbox Code Playgroud)

输出:1340128712

或者Instant.getEpochSecond()返回从 Java 纪元 1970-01-01T00:00:00Z 开始的秒数。它从 Java v1.8文档开始可用。


マルち*_* だよ 5

从 Java 8 开始,就有了这个优雅的方法,它以秒为单位返回纪元时间(自 1970 年 1 月 1 日 0:00:0 以来的秒数)。然后,您可以将此值存储为数值:在本例中为“long”。

long timestamp = java.time.Instant.now().getEpochSecond();