Продовжуючи запитання про переповнення стека, програма 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
створення тимчасових об'єктів , якими користуєтьсяmethod 1
, тим часомmethod 2
здається, що хак замість рішення.