如何在Java中计算截断到午夜的Unix时间戳?
PHP示例显示了制作字符串,然后将其解析回来的方法。肯定有比这更简洁的方法来完成它。
如何在Java中计算截断到午夜的Unix时间戳?
PHP示例显示了制作字符串,然后将其解析回来的方法。肯定有比这更简洁的方法来完成它。
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;
对于Unix时间戳,您可以创建如下函数:
public long getMidnightTimestamp(long timestamp)
{
return timestamp - timestamp % 86400; // 24 * 60 * 60 sec in one day
}
并像这样使用它:
long currentTimestamp = System.currentTimeMillis() / 1000;
long todayMidnightTimestamp = getMidnightTimestamp(currentTimestamp);
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
c.set(Calendar.HOUR,0);
c.set(Calendar.MINUTE,0);
c.set(Calendar.SECOND,0);
c.set(Calendar.MILLISECOND,0);
long midnightUnixTimestamp = c.getTime().getTime()/1000;