在我的代码中,我需要找到今天发生的所有事情。因此,我需要比较从今天凌晨00:00 (今天凌晨)到下午12:00 (今晚午夜)的日期。
我知道..。
Date today = new Date();
..。我现在就明白了。还有..。
Date beginning = new Date(0);
..。在1970年1月1日给我的时间是零。但是,有什么简单的方法可以让你今天零时间,明天零时间呢?
更新
我这么做了,但肯定有更简单的方法吧?
Calendar calStart = new GregorianCalendar();
calStart.setTime(new Date());
calStart.set(Calendar.HOUR_OF_DAY, 0);
calStart.set(Calendar.MINUTE, 0);
calStart.set(Calendar.SECOND, 0);
calStart.set(Calendar.MILLISECOND, 0);
Date midnightYesterday = calStart.getTime();
Calendar calEnd = new GregorianCalendar();
calEnd.setTime(new Date());
calEnd.set(Calendar.DAY_OF_YEAR, calEnd.get(Calendar.DAY_OF_YEAR)+1);
calEnd.set(Calendar.HOUR_OF_DAY, 0);
calEnd.set(Calendar.MINUTE, 0);
calEnd.set(Calendar.SECOND, 0);
calEnd.set(Calendar.MILLISECOND, 0);
Date midnightTonight = calEnd.getTime();
发布于 2012-09-07 21:48:25
找到午夜的最简单方法是:
Long time = new Date().getTime();
Date date = new Date(time - time % (24 * 60 * 60 * 1000));
第二天:
Date date = new Date(date.getTime() + 24 * 60 * 60 * 1000);
发布于 2015-12-09 21:28:54
这些方法将帮助您-
public static Date getStartOfDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
和
public static Date getEndOfDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 999);
return calendar.getTime();
}
发布于 2015-08-10 20:19:13
java.time
如果您使用的是Java8或更高版本,可以尝试使用java.time package (Tutorial):
LocalDate tomorrow = LocalDate.now().plusDays(1);
Date endDate = Date.from(tomorrow.atStartOfDay(ZoneId.systemDefault()).toInstant());
https://stackoverflow.com/questions/6850874
复制相似问题