从给定的日期开始,我需要计算当天的午夜。这是我想出的。它太丑陋了,我认为必须有更好的方法。
private Date day(Date creation) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(creation);
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();
}
建议?
肯特
最佳答案
您应该考虑过时的内置日期 API。而是使用 Joda 日期和时间 API。
这是您的方法的直接替代方法。
private Date day(Date creation) {
return new DateMidnight(creation).toDate();
}
这是一个简单的测试:
public static void main(String[] args) {
final Date creation = new Date();
final Date midnight = new Foobar().day(creation);
System.out.println("creation = " + creation);
System.out.println("midnight = " + midnight);
}
输出是:
creation = Sun May 31 10:09:38 CEST 2009
midnight = Sun May 31 00:00:00 CEST 2009
关于java - 计算给定日期的一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/930904/