tl; dr
LocalDate.now()
LocalDate
Jeśli to, co chcesz, jest właściwie tylko datę bez czasu, użyj LocalDate
klasę.
Klasa LocalDate
reprezentuje wartość tylko dla daty bez pory dnia i bez strefy czasowej.
Strefa czasowa ma kluczowe znaczenie przy ustalaniu daty. W danym momencie data zmienia się na całym świecie według strefy. Na przykład kilka minut po północy w Paris France jest nowy dzień, a jednocześnie "wczoraj" w Montréal Québec.
Określ proper time zone name w formacie continent/region
, takich jak America/Montreal
, Africa/Casablanca
lub Pacific/Auckland
. Nigdy nie używaj skrótu 3-4-literowego, takiego jak EST
lub IST
, ponieważ są one rzeczywistymi strefami czasowymi, nie są standaryzowane, a nawet unikalne (!).
ZoneId z = ZoneId.of("America/Montreal");
LocalDate today = LocalDate.now(z);
ZonedDateTime
Jeśli chcesz randkę z dnia pomiaru czasu ustawionym na pierwszej chwili dnia, prosić java.time aby określić ten moment dla ciebie. Nie zakładaj, że pierwsza chwila to 00:00:00. Anomalie, takie jak czas letni, oznaczają, że pierwsza chwila może nastąpić w innym czasie, na przykład 01:00:00.
Użyj tego obiektu strefy czasowej, ZoneId
, aby wygenerować obiekt ZonedDateTime
.
ZonedDateTime zdt = today.atStartOfDay(z); // Determine the first moment of the day on this date for this time zone.
Aby zobaczyć tę samą chwilę jako wartość w UTC, wyodrębnić Instant
obiekt.
Instant instant = zdt.toInstant();
Unikaj starszych klas date-time
uniknąć kłopotliwych starych klas Date-Time, takich jak Calendar
. Są one teraz starsze, wyparte przez klasy java.time.
O java.time
Ramy java.time jest wbudowana w Java 8 i późniejszych. Klasy te zastępują kłopotliwe stare klasy z datami, takie jak java.util.Date
, Calendar
, & SimpleDateFormat
.
Projekt Joda-Time, teraz w maintenance mode, zaleca migrację do klas java.time. Aby uzyskać więcej informacji, zobacz
. I wyszukaj Stack Overflow dla wielu przykładów i objaśnień. Specyfikacja to JSR 310.
Gdzie można uzyskać lekcje java.time?
Projekt ThreeTen-Extra rozciąga java.time z dodatkowych zajęć. Ten projekt jest poligonem wskazującym na możliwe przyszłe dodatki do java.time. Możesz znaleźć tutaj kilka użytecznych klas, takich jak Interval
, YearWeek
, YearQuarter
i more.
dzięki, to się udało! –
@just_user to popraw odpowiedź ... – Fred
na Androidzie dałem mi wczoraj (północ) – Anthony