以秒为单位获取当前时间

SVC*_*994 5 java java-time

有没有办法以秒为单位获取当天的当前时间?请注意,我问的是一天中的时间,而不是 UTC 时间。

我想要的是介于0 - 86,400 (12:00AM - 11:59PM)之间的值(以秒为单位)。我正在开发一个每天运行的应用程序,当一天结束时,时间(以秒为单位)应该重新开始0

所以让我们说它是10:00AM。我应该得到36,000秒,如果我的时间是5:00PM,我应该得到61,200秒。

PS:我不知道手头的时间。该程序将使用currentTime()函数自行计算。

dav*_*xxx 5

使用 Java 8,您可以创建一个Duration实例。
例如 :

LocalDateTime date = LocalDateTime.now();
long seconds = Duration.between(date.withSecond(0).withMinute(0).withHour(0), date).getSeconds();
Run Code Online (Sandbox Code Playgroud)

或者更简单地说,您可以将 转换LocalDateTimeLocalTime实例,然后应用该toSecondOfDay()方法:

LocalDateTime date = LocalDateTime.now();
int seconds = date.toLocalTime().toSecondOfDay();
Run Code Online (Sandbox Code Playgroud)

java.time.LocalTimejavadoc :

public int toSecondOfDay()
Run Code Online (Sandbox Code Playgroud)

将时间提取为一天中的秒数,从 0 到 24 * 60 * 60 - 1。