tl; dr
ZonedDateTime.now(
ZoneId.of( "America/Montreal" )
)
… Mevcut varsayılan saat diliminden…
ZonedDateTime.now(
ZoneId.systemDefault()
)
Detaylar
Stanislav Bshkyrtsev tarafından cevap doğru ve doğrudan Soru cevaplar.
Ancak, Jon Skeet'in Yanıtında önerildiği gibi, daha büyük sorunlar var .
LocalDateTime
Epoch second'ı LocalDateTime'a dönüştürmenin bir yolunu bulamıyorum
LocalDateTimekasıtlı olarak saat dilimi veya UTC'den sapma kavramı yoktur. Muhtemelen istediğin şey değil. Bu Local…, herhangi bir yerellik anlamına gelir , belirli bir yer değil. Bu sınıf bir anı değil , yalnızca yaklaşık 26-27 saatlik bir aralıktaki potansiyel anları temsil eder (dünyadaki zaman dilimleri aralığı).
Instant
Geçerli saati almaya çalışıyorsanız, epoch saniye ile başlamanıza gerek yoktur. Akımı alın Instant. InstantSınıfı zaman çizelgesinde bir anı temsil UTC çözünürlüğe sahip nanosaniye (ondalık kesir dokuz (9) haneye kadar).
Instant instant = Instant.now();
Bunun içinde, çağdan Instantitibaren nanosaniye sayısı var . Ama gerçekten umursamıyoruz.
ZonedDateTime
Belirli bir bölgenin duvar saatlik süre merceğinden o anı görmek istiyorsan, bir geçerli ZoneIdbir olsun ZonedDateTime.
ZoneId z = ZoneId.of( "Europe/Paris" );
ZonedDateTime zdt = instant.atZone( z );
Bir kısayol olarak, doğrudan ZonedDateTime.
ZonedDateTime zdt = ZonedDateTime.now( z );
A'nın ZonedDateTimeiçinde bir Instantvardır. UTC'dezdt.toInstant() temel bir değer olarak aynı anda aynı anı almak için arayın . Dönemden beri aynı sayıda nanosaniye, her şekilde, bir .ZonedDateTimeInstant
Dönemden bu yana geçen saniye sayısı
Size çağdan beri bir saniye sayısı verilmişse ve dönem, UTC ( 1970-01-01T00:00:00Z) ' de 1970'in ilk anıysa, o sayıyı Instant.
long secondsSinceEpoch = 1_484_063_246L ;
Instant instant = Instant.ofEpochSecond( secondsSinceEpoch ) ;

Hakkında java.time
Java.time çerçevesi daha sonra Java 8 ve yerleşiktir. Bu sınıflar zahmetli eski yerini mirası gibi tarih-saat sınıfları java.util.Date, Calendar& SimpleDateFormat.
Daha fazla bilgi edinmek için Oracle Eğitimine bakın . Ve birçok örnek ve açıklama için Stack Overflow'da arama yapın. Spesifikasyon JSR 310'dur .
Şu anda bakım modunda olan Joda-Time projesi, java.time sınıflarına geçişi tavsiye ediyor .
Sen değiştirebilir java.time sizin veritabanı ile doğrudan nesneleri. JDBC 4.2 veya üstü ile uyumlu bir JDBC sürücüsü kullanın . Dizelere gerek yok, derslere gerek yok .java.sql.*
Java.time derslerini nereden edinebilirim?
ThreeTen-Ekstra proje ek sınıfları ile java.time uzanır. Bu proje, java.time uygulamasına gelecekteki olası eklemeler için kanıtlayıcı bir zemindir. Burada bazı yararlı sınıfları gibi bulabilir Interval, YearWeek, YearQuarter, ve daha .
import java.time.{Instant, LocalDateTime, ZoneId, ZoneOffset}çalışması için hangi dili / lehçeyi kullanıyorsunuz ? Bu bir varunexpected tokenJava 11. benim için