Hallo Java-Forum!
Ich habe eine (lokale) Zeitangabe in Millisekunden und möchte die Zeit 0 Uhr dieses Tages in Millisekunden haben. Das geht sicher mit Calendar, aber ich würde gern darauf verzichten, wenn ich es mit einigen wenigen Rechenschritten direkt mit den longs machen kann.
Dieses Vorgehen liefert mir allerdings 2 Uhr des Tages, was vermutlich daran liegt, dass Miilisekunde 0 überall anders ist (und bei 24-Stunden-Schritten entsprechend nicht zwingend 0 Uhr herauskommt).
Nun stelle ich mir die Frage, ob ich das überhaupt mit einfachen longs lösen kann, oder ob aus Lokalisierungsgründen ein komplexeres Gebilde wie Calendar nötig ist.
Ich habe eine (lokale) Zeitangabe in Millisekunden und möchte die Zeit 0 Uhr dieses Tages in Millisekunden haben. Das geht sicher mit Calendar, aber ich würde gern darauf verzichten, wenn ich es mit einigen wenigen Rechenschritten direkt mit den longs machen kann.
Java:
long justNow = System.currentTimeMillis();
long dayMilliFactor = 1000 * 60 * 60 * 24;
long numberOfDays = justNow / dayMilliFactor;
long dayInMillis = numberOfDays * dayMilliFactor;
Date d1 = new Date();
System.out.println(d1);
d1.setTime(dayInMillis);
System.out.println(d1);
Dieses Vorgehen liefert mir allerdings 2 Uhr des Tages, was vermutlich daran liegt, dass Miilisekunde 0 überall anders ist (und bei 24-Stunden-Schritten entsprechend nicht zwingend 0 Uhr herauskommt).
Nun stelle ich mir die Frage, ob ich das überhaupt mit einfachen longs lösen kann, oder ob aus Lokalisierungsgründen ein komplexeres Gebilde wie Calendar nötig ist.
Zuletzt bearbeitet: