Продолжая с вопроса переполнения стека 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 кажется чрезвычайно популярным, поэтому я мог бы рассмотреть это.
Под эффективностью я подразумеваю, что хочу избежать
String
создания временных объектов в том видеmethod 1
, вmethod 2
каком они используются , а пока кажется взломом вместо решения.