Fahren Sie mit dem Java-Programm " Stapelüberlauf " fort, um das aktuelle Datum ohne Zeitstempel abzurufen :
Was ist der effizienteste Weg, um ein Date-Objekt ohne Zeit zu erhalten? Gibt es einen anderen Weg als diese beiden?
// 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();
Update :
Ich wusste von Joda-Time ; Ich versuche nur, zusätzliche Bibliothek für eine so einfache (glaube ich) Aufgabe zu vermeiden. Aber basierend auf den bisherigen Antworten scheint Joda-Time äußerst beliebt zu sein, also könnte ich es in Betracht ziehen.
Mit effizient meine ich, dass ich die temporäre Objekterstellung vermeiden möchte,
String
wie sie von verwendet wirdmethod 1
. In der Zwischenzeitmethod 2
scheint dies eher ein Hack als eine Lösung zu sein.