如何获取今天到目前为止经过的毫秒数

2022-09-04 02:04:35

我想以毫秒为单位获取当前时间和日期。我怎样才能得到这个?

我试过这个:

Date date=new Date() ;  
System.out.println("Today is " +date.getTime());

它将返回 1970 年 1 月 1 日的毫秒。

但是我想要今天日期的当前毫秒,例如:

23:59:00 = 86340000 milliseconds

答案 1

对于 Java 8 或更高版本,这不是正确的方法。这个答案是为后代保留的。对于任何合理的现代Java,请使用Basil Bourque的方法代替。


以下似乎有效。

Calendar rightNow = Calendar.getInstance();

// offset to add since we're not UTC
long offset = rightNow.get(Calendar.ZONE_OFFSET) +
    rightNow.get(Calendar.DST_OFFSET);
long sinceMidnight = (rightNow.getTimeInMillis() + offset) %
    (24 * 60 * 60 * 1000);

System.out.println(sinceMidnight + " milliseconds since midnight");

问题是 返回从 1970-01-01T00:00:00Z 开始的毫秒数,但给出当前本地时间。从类中添加 和 将为您提供默认/当前时区中的时间。date.getTime()new Date()ZONE_OFFSETDST_OFFSETCalendar


答案 2

尝试:

(d.getTime() % (86400000))

注意:86400000 是一天中的毫秒数。


推荐