Definiowanie "Północ"
Słowo "północ" jest trudne do zdefiniowania.
Niektórzy myślą o nim jako o przed rozpoczyna się nowy dzień. Próba przedstawienia tego w oprogramowaniu tak trudnym jak ostatnia chwila dnia zawsze może zostać podzielona na mniejsze części sekundy.
Proponuję lepszy sposób myślenia o tym, aby uzyskać "pierwszą chwilę dnia".
To obsługuje powszechnie stosowane podejście polegające na definiowaniu przedziału czasu jako "Półotwartego", gdzie początek obejmuje włącznie, a zakończenie jest wyłączne. Więc cały dzień zaczyna się od pierwszej chwili dnia i biegnie do, ale nie włączając, pierwszego dnia po dniu. Chciałby to cały dzień (zwróć uwagę na datę od 3 do 4):
2016-02-03T00: 00: 00.0-08: 00 [Ameryka/Los_Angeles]/2016-02-04T00: 00: 00.0-08: 00 [Ameryka/Los_Angeles]
Joda-Time
przypadku korzystania z biblioteki Joda-Time, zadzwoń withTimeAtStartOfDay
.
Zobacz, jak określamy strefę czasową. Jeśli zostanie pominięty, domyślna domyślna strefa czasowa maszyny JVM zostanie domyślnie zastosowana. Lepiej być wyraźnym.
DateTime todayStart = DateTime.now(DateTimeZone.forID("America/Montreal")).withTimeAtStartOfDay() ;
W przypadku korzystania z języka Java 8 lub nowszego lepiej użyć pakietu java.time wbudowanego w Javę. Zobacz sibling Answer autorstwa Jensa Hoffmana.
Co zostało próbował? Zadziałało? Jeśli nie, dlaczego nie? –
@ pst dodana sekcja to d2, której chcę. Teraz potrzebuję obiektu d1, który jest czasem północy. –