7

For example, if it's 1 p.m (13:00) and I need to get the number 46800000 (13 hours from beginning o day) in milliseconds. Could anyone please help?

Toan Le
  • 412
  • 1
  • 6
  • 17

2 Answers2

21

You can use a Calendar to calculate it. You set the time to the hour 0 and calculate the difference:

Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
long millis = (System.currentTimeMillis() - c.getTimeInMillis());
Marcos Lima
  • 761
  • 1
  • 10
  • 26
0

Joda-Time

Using the Joda-Time 2.5 library, it is an easy one-liner.

long millisOfDay = DateTime.now(  DateTimeZone.forID( "America/Montreal" ) ).getMillisOfDay();

Note how time zone is crucial. If omitted you implicitly rely on the JVM’s current default.

Basil Bourque
  • 303,325
  • 100
  • 852
  • 1,154