Kontynuując pytanie programu Java dotyczące przepełnienia stosu , aby uzyskać bieżącą datę bez znacznika czasu :
Jaki jest najskuteczniejszy sposób na uzyskanie obiektu Date bez czasu? Czy jest jakiś inny sposób niż te dwa?
// 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();
Aktualizacja :
Wiedziałem o Joda-Time ; Próbuję po prostu uniknąć dodatkowej biblioteki dla tak prostego (jak sądzę) zadania. Ale na podstawie dotychczasowych odpowiedzi Joda-Time wydaje się niezwykle popularny, więc mógłbym to rozważyć.
Mówiąc wydajnie , chcę uniknąć
String
tworzenia tymczasowych obiektów, z których korzystamethod 1
, tymczasemmethod 2
wydaje się, że to hack zamiast rozwiązania.