tl; д-р
ZonedDateTime.now(
ZoneId.of( "America/Montreal" )
)
… Поточного часового поясу за замовчуванням…
ZonedDateTime.now(
ZoneId.systemDefault()
)
Деталі
Відповідь Станіслав Bshkyrtsev правильно і безпосередньо відповідає на ваше запитання.
Але тут є й більші проблеми, як пропонується у відповіді Джона Скіта .
LocalDateTime
Я не знаходжу способу перетворити епоху другої в LocalDateTime
LocalDateTimeнавмисно не має поняття часового поясу чи зсуву від UTC. Напевно, що ти хочеш. Local…Чи означає будь-яку місцевість, а не якийсь - небудь однієї конкретної місцевості. Цей клас не представляє моменту, а лише потенційні моменти в діапазоні приблизно 26-27 годин (діапазон часових поясів по всьому світу).
Instant
Не потрібно починати з епохальних секунд, якщо ви намагаєтесь визначити поточний час. Отримайте струм Instant. InstantКлас являє собою момент на часовій шкалі в форматі UTC з дозволом наносекунд (до дев'яти (9) цифр десяткового дробу).
Instant instant = Instant.now();
Всередині цього Instant- відлік наносекунд - від епохи. Але нас насправді не хвилює.
ZonedDateTime
Якщо ви хочете побачити цей момент крізь призму годинника настінного часу певної області, застосуйте a, ZoneIdщоб отримати a ZonedDateTime.
ZoneId z = ZoneId.of( "Europe/Paris" );
ZonedDateTime zdt = instant.atZone( z );
Як ярлик можна зробити безпосередньо до ZonedDateTime.
ZonedDateTime zdt = ZonedDateTime.now( z );
A ZonedDateTimeмає Instantвсередині нього. Телефонуйте, zdt.toInstant()щоб отримати той самий момент часу, що і базове значення в UTC . Стільки ж наносекунд з епохи в будь-який спосіб, як a, ZonedDateTimeтак і aInstant .
Дано секунди з епохи
Якщо вам дається кількість секунд з часу епохи, і епоха - це перший момент 1970 року в UTC ( 1970-01-01T00:00:00Z), тоді подайте це число до Instant.
long secondsSinceEpoch = 1_484_063_246L ;
Instant instant = Instant.ofEpochSecond( secondsSinceEpoch ) ;

Про java.time
Java.time каркас вбудований в Java 8 і пізніших версій. Ці класи витісняти неприємні старі застарілі класи дати і часу , такі як java.util.Date, Calendar, і SimpleDateFormat.
Щоб дізнатись більше, див. Підручник Oracle . І шукайте в Stack Overflow багато прикладів та пояснень. Специфікація - JSR 310 .
Проект Joda-Time , який зараз перебуває в режимі обслуговування , радить перейти на класи java.time .
Ви можете обмінювати об'єкти java.time безпосередньо з базою даних. Використовуйте драйвер JDBC, сумісний з JDBC 4.2 або новішою. Не потрібні рядки, не потрібні java.sql.*класи.
Де отримати класи java.time?
Проект ThreeTen-Extra розширює java.time додатковими класами. Цей проект є полігоном для можливих майбутніх доповнень до java.time. Ви можете знайти деякі корисні класи тут , такі як Interval, YearWeek, YearQuarter, і більш .
import java.time.{Instant, LocalDateTime, ZoneId, ZoneOffset}? Цеunexpected tokenдля мене в Java 11.