我想将java.util.Date重置为当天的开头 使用
Date date = new Date();
Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
date = cal.getTime();
与
Date date = new Date();
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String s=df.format(date);
try {
date = df.parse(s);
} catch (ParseException ex) {
}
哪一个更好?
答案 0 :(得分:1)
这个在清晰度和可读性方面更好,但两者都提供相同的输出。
Date date = new Date();
Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
date = cal.getTime();
答案 1 :(得分:0)
第一个解决方案(通过Calendar
进行操作)绝对更好。第二个解决方案只是一个使用字符串操作的相当丑陋的解决方法,它很可能比第一个解决方案慢。
答案 2 :(得分:0)
您可以采用第一种方法,而无需在日历中设置时间。
// Date date = new Date();
Calendar cal = new GregorianCalendar();
// cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
Date date = cal.getTime();
答案 3 :(得分:0)
借助Apache Commons org.apache.commons.lang3.time.DateUtils
,您还可以像这样获得所需的结果:
DateUtils.truncate(new java.util.Date(), java.util.Calendar.DATE));