计算前一个午夜的unix时间戳

Wil*_*ill 5 java datetime

你如何在Java中计算截断到午夜的unix时间戳?

PHP示例显示了创建字符串然后将其解析回来.肯定有必要在Java中使用更清晰的方法吗?

Evg*_*eev 5

Unix时间戳从UTC午夜开始,因此我们可以执行以下操作

Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
long unixTimeStamp = c.getTimeInMillis() / 1000;
Run Code Online (Sandbox Code Playgroud)


小智 5

对于 unix 时间戳,您可以创建如下函数:

public long getMidnightTimestamp(long timestamp)
{
    return timestamp - timestamp % 86400; // 24 * 60 * 60 sec in one day 
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

long currentTimestamp =  System.currentTimeMillis() / 1000;
long todayMidnightTimestamp = getMidnightTimestamp(currentTimestamp);
Run Code Online (Sandbox Code Playgroud)