例如
,如果是下午 1 点 (13:00),我需要以毫秒为单位获取数字 46800000(从一天开始的 13 小时)。有人可以帮忙吗?
您可以使用日历来计算它。将时间设置为小时 0 并计算差值:
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());
Joda-Time
使用 Joda-Time 2.5 库,它是一个简单的单行代码。
long millisOfDay = DateTime.now( DateTimeZone.forID( "America/Montreal" ) ).getMillisOfDay();
请注意时区的重要性。如果省略,则隐式依赖 JVM 的当前默认值。