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

问题描述 投票:0回答:4

我使用的 API 需要一个以秒为单位的日期参数,即

int

我的问题是,我目前将此时间存储在

java.util.date
中,我想知道是否有某种方法可以将
java.util.date
变量转换为秒,以便我可以将其放入 API 所需的
int
参数中?

java data-conversion java.util.date
4个回答
20
投票
import java.util.Date;

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

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


7
投票

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


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


5
投票

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

    java.util.Date date=new Date();    
    System.out.println(date.getTime());

输出: 1340128712111

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

1000

long secs = date.getTime()/1000;
System.out.println(secs);

输出: 1340128712

或者

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


1
投票

秒数本身并没有多大意义。当前分钟内有多少秒?自 1970 年 1 月 1 日 0:00:00 起经过了多少秒?午餐后经过了多少秒?能具体点吗

将其放入 API 中也没有多大意义,除非您准确指定您正在使用哪个 API,以及您试图将这些秒放在哪里。

© www.soinside.com 2019 - 2024. All rights reserved.