tl; dr
ZonedDateTime.now(
ZoneId.of( "America/Montreal" )
)
… Bieżącej domyślnej strefy czasowej…
ZonedDateTime.now(
ZoneId.systemDefault()
)
Detale
Odpowiedz przez Stanislav Bshkyrtsev prawidłowo i bezpośrednio odpowiada na Twoje pytanie.
Istnieją jednak większe problemy, jak sugeruje odpowiedź Jona Skeeta .
LocalDateTime
Nie znajduję sposobu, aby przekonwertować epokę sekundę na LocalDateTime
LocalDateTimecelowo nie ma pojęcia strefy czasowej ani przesunięcia względem czasu UTC. Mało prawdopodobne, czego chcesz. Local…Oznacza dowolną lokalizację, a nie któregokolwiek konkretnym obszarze. Ta klasa nie przedstawia momentu, a jedynie potencjalne momenty w zakresie około 26-27 godzin (zakres stref czasowych na całym świecie).
Instant
Nie musisz zaczynać od sekund epoki, jeśli próbujesz uzyskać aktualny czas. Pobierz aktualny Instant. InstantKlasa reprezentuje moment na osi czasu w UTC z rozdzielczością nanosekund (do dziewięciu (9) cyfr ułamka dziesiętnego).
Instant instant = Instant.now();
Wewnątrz tego Instantjest liczba nanosekund -od-epoki. Ale tak naprawdę nas to nie obchodzi.
ZonedDateTime
Jeśli chcesz zobaczyć ten moment przez pryzmat zegara ściennego określonego regionu, zastosuj a, ZoneIdaby uzyskać ZonedDateTime.
ZoneId z = ZoneId.of( "Europe/Paris" );
ZonedDateTime zdt = instant.atZone( z );
Jako skrót możesz zrobić bezpośrednio do ZonedDateTime.
ZonedDateTime zdt = ZonedDateTime.now( z );
A ZonedDateTimema Instantw sobie. Zadzwoń, zdt.toInstant()aby uzyskać ten sam moment jako podstawową wartość w UTC . Taka sama liczba nanosekund od epoki w obu przypadkach, jako a ZonedDateTimelub jako Instant.
Podane sekundy od epoki
Jeśli podana jest liczba sekund od epoki, a epoka jest pierwszą chwilą roku 1970 w UTC ( 1970-01-01T00:00:00Z), podaj tę liczbę do Instant.
long secondsSinceEpoch = 1_484_063_246L ;
Instant instant = Instant.ofEpochSecond( secondsSinceEpoch ) ;

Informacje o java.time
Struktura java.time jest wbudowana w Javę 8 i nowsze. Klasy te kłopotliwe zastąpić stary starszych klas Date-Time, takich jak java.util.Date, Calendar, i SimpleDateFormat.
Aby dowiedzieć się więcej, zobacz samouczek Oracle . I przeszukaj Stack Overflow, aby znaleźć wiele przykładów i wyjaśnień. Specyfikacja to JSR 310 .
Projekt Joda-Time , obecnie w trybie konserwacji , zaleca migrację do klas java.time .
Możesz wymieniać obiekty java.time bezpośrednio ze swoją bazą danych. Użyj sterownika JDBC zgodnego z JDBC 4.2 lub nowszym. Nie ma potrzeby stosowania ciągów ani java.sql.*klas.
Skąd wziąć klasy java.time?
Projekt ThreeTen-Extra rozszerza java.time o dodatkowe klasy. Ten projekt jest poligonem doświadczalnym dla ewentualnych przyszłych dodatków do java.time. Można znaleźć kilka przydatnych klas tutaj takie jak Interval, YearWeek, YearQuarter, i więcej .
import java.time.{Instant, LocalDateTime, ZoneId, ZoneOffset}działał? Tounexpected tokendla mnie w Javie 11.