继续从Stack Overflow问题Java程序获取没有时间戳的当前日期:
没有时间获取Date对象的最有效方法是什么?除了这两种以外,还有其他方法吗?
// Method 1 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date dateWithoutTime = sdf.parse(sdf.format(new Date())); // Method 2 Calendar cal = Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); dateWithoutTime = cal.getTime();
更新:
我知道乔达·时代;我只是想避免为这样一个简单的任务增加库(我认为)。但是根据到目前为止的答案,《乔达时报》似乎非常受欢迎,因此我可以考虑一下。
通过高效的,我的意思是我想避免临时对象String的创建13759 method 1,同时method 2似乎是一个黑客,而不是一个解决方案。
你绝对必须使用java.util.Date吗?我将彻底建议你使用Joda Time或java.timeJava 8中的软件包。特别是,虽然“日期”和“日历” 始终代表一个特定的时间瞬间,但没有“仅是日期”这样的概念,但“乔达时间” 确实有一个表示该时间的类型(LocalDate)。如果你能够使用表示你实际要执行的操作的类型,则代码将更加清晰。
java.util.Date
java.timeJava
LocalDate
使用Joda Time或使用java.time内置java.util类型的原因很多很多,它们通常是更好的API。java.util.Date如果需要,例如在进行数据库交互时,你始终可以在自己代码的边界处与a 进行相互转换。
Joda Time
java.time
java.util