How can I get the count of milliseconds since midnight for the current?
Note, I do NOT want millis from epoch. I want the number of milliseconds currently on the clock.
So for example, I have this bit of code.
Date date2 = new Date();
Long time2 = (long) (((((date2.getHours() * 60) + date2.getMinutes())* 60 ) + date2.getSeconds()) * 1000);
Is there a way to get milliseconds with date? Is there another way to do this?
Note: System.currentTimeMillis()
gives me millis from epoch which is not what I'm looking for.
Solution 1:
Do you mean?
long millis = System.currentTimeMillis() % 1000;
BTW Windows doesn't allow timetravel to 1969
C:\> date
Enter the new date: (dd-mm-yy) 2/8/1969
The system cannot accept the date entered.
Solution 2:
Use Calendar
Calendar.getInstance().get(Calendar.MILLISECOND);
or
Calendar c=Calendar.getInstance();
c.setTime(new Date()); /* whatever*/
//c.setTimeZone(...); if necessary
c.get(Calendar.MILLISECOND);
In practise though I think it will nearly always equal System.currentTimeMillis()%1000; unless someone has leap-milliseconds or some calendar is defined with an epoch not on a second-boundary.
Solution 3:
Calendar.getInstance().get(Calendar.MILLISECOND);