如何使用Java找到从午夜经过的秒数?java.time
我需要一个函数,告诉我从午夜经过了多少秒。我目前正在使用,但它给了我像UNIX一样的时间戳。System.currentTimeMillis()
如果我也能得到毫秒,这对我来说将是一个奖励。
我需要一个函数,告诉我从午夜经过了多少秒。我目前正在使用,但它给了我像UNIX一样的时间戳。System.currentTimeMillis()
如果我也能得到毫秒,这对我来说将是一个奖励。
如果您使用的是Java > = 8,则可以轻松完成:
ZonedDateTime nowZoned = ZonedDateTime.now();
Instant midnight = nowZoned.toLocalDate().atStartOfDay(nowZoned.getZone()).toInstant();
Duration duration = Duration.between(midnight, Instant.now());
long seconds = duration.getSeconds();
如果您使用的是Java 7或更低版本,则必须通过日历从午夜开始获取日期,然后减去。
Calendar c = Calendar.getInstance();
long now = c.getTimeInMillis();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
long passed = now - c.getTimeInMillis();
long secondsPassed = passed / 1000;