继续上面这个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();
更新:
我知道Joda-Time;我只是试图避免为如此简单(我想)的任务使用额外的库。但基于迄今为止的答案,Joda-Time似乎非常受欢迎,所以我可能会考虑它。
通过“高效”,我指的是要避免像
方法1
一样使用临时对象String
创建,而方法2
似乎是一个 hack 而不是一种解决方案。