So berechnen Sie ein Datum für ein 00:00:00 Uhr von heute?
Ich brauche zu berechnen, java.util.Das Datum für den Beginn einer heute Tag (00:00:00 Uhr des heutigen Tages). Hat jemand wissen, etwas besser als das zurücksetzen Felder von java.util.Kalender:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.AM_PM, Calendar.AM);
cal.set(Calendar.HOUR, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
- Das ist nicht so schlimm.
- Aber ich mag die Kürze,...
- dann wickeln Sie es in eine Methode namens
getTodayAtMidnight()
- aufpassen: nicht jeder Tag beginnt um Mitternacht, und einige haben begonnen, um 1:00 Uhr.
- könnten Sie näher erläutern, wenn möglich mit einer Quelle ? An welchem Tag(en) redest du ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht die Mühe über die Zeitzonen dann deine Lösung ist ok. Ansonsten lohnt es sich, zu schauen, JodaTime.
Wenn Sie schließlich entscheiden, zu wechseln, JodaTime, dann können Sie DateMidnight Klasse, die verwendet werden soll, in Ihrer situation.
Dem folgenden code wird wieder das aktuelle Datum ein Kalender-Objekt mit der Zeit als 00:00:00
Wird es nicht betrachten Sie das timezone-Werte und ist fast dasselbe wie dein code. Einzige Unterschied ist, dass es geschieht alles auf 0 zurückgesetzt in eine einzige Zeile.
Diese Lösung besser sein kann, als es sich nicht machen Verwendung von java ist schwer element Kalender
Ich bin im gleichen Boot, und das, was Sie angegeben haben, wie ich es mache. Ich habe es in einem
DateUtil.stripToMidnight(...)
Funktion...Sondern nur daran erinnern, zu überlegen, Zeitzonen, wenn Sie das tun, als 0:00 Uhr hier wird nicht die gleiche sein in einem anderen Teil der Welt.
Gibt es vielleicht einen Weg, dies zu tun in JodaTime, aber ich weiß nicht, es.
Mit der date4j Bibliothek :
Andere Möglichkeit, ohne zusätzliche Bibliotheken:
Ab java8, es kann getan werden, als Folgen, vorausgesetzt, Sie kümmern sich nicht darum, Zeitzone