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