如何获取当前自午夜以来的毫秒数?

2022-08-31 08:29:01

注意,我不想要来自纪元的米利斯。我想要时钟上当前显示的毫秒数。

例如,我有一段代码。

Date date2 = new Date(); 
Long time2 = (long) (((((date2.getHours() * 60) + date2.getMinutes())* 60 ) + date2.getSeconds()) * 1000);

有没有办法获得毫秒与日期?有没有另一种方法可以做到这一点?

注意:给我来自纪元的毫米利斯,这不是我想要的。System.currentTimeMillis()


答案 1

你的意思是?

long millis = System.currentTimeMillis() % 1000;

BTW Windows不允许时间旅行到1969年

C:\> date
Enter the new date: (dd-mm-yy) 2/8/1969
The system cannot accept the date entered.

答案 2

使用日历

Calendar.getInstance().get(Calendar.MILLISECOND);

Calendar c=Calendar.getInstance();
c.setTime(new Date()); /* whatever*/
//c.setTimeZone(...); if necessary
c.get(Calendar.MILLISECOND);

在实践中,我认为它几乎总是等于System.currentTimeMillis()%1000;除非有人有闰毫秒,或者某些日历被定义为不在第二边界上的纪元。