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()
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文档开始可用。
从 Java 8 开始,就有了这个优雅的方法,它以秒为单位返回纪元时间(自 1970 年 1 月 1 日 0:00:0 以来的秒数)。然后,您可以将此值存储为数值:在本例中为“long”。
long timestamp = java.time.Instant.now().getEpochSecond();