Как мне получить дату без время в Java?

Продолжение вопроса о переполнении стека Программа 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();

Обновление :

  1. Я знал о Joda-Time ; Я просто стараюсь избегать дополнительных библиотек для такой простой (как мне кажется) задачи. Но, судя по имеющимся ответам, Joda-Time кажется чрезвычайно популярным, поэтому я мог бы счесть его.

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

224
задан Community 23 May 2017 в 02:34
поделиться