tl; dr
ZonedDateTime.now(
ZoneId.of( "America/Montreal" )
)
…現在のデフォルトのタイムゾーンの…
ZonedDateTime.now(
ZoneId.systemDefault()
)
詳細
スタニスラフBshkyrtsevによって回答が正しくて、直接あなたの質問に答えます。
しかし、Jon Skeetによる回答で示唆されているように、より大きな問題が関係しています。
LocalDateTime
エポック秒をLocalDateTimeに変換する方法が見つかりません
LocalDateTime
意図的にタイムゾーンやUTCからのオフセットの概念はありません。おそらくあなたが望むものではありません。とLocal…
は、特定の地域ではなく、任意の地域を意味します。このクラスは瞬間を表すのではなく、約26〜27時間の範囲(世界中のタイムゾーンの範囲)に沿った潜在的な瞬間のみを表します。
Instant
現在の時刻を取得しようとしている場合は、エポック秒から始める必要はありません。現在を取得しInstant
ます。このInstant
クラスは、UTCのタイムライン上の瞬間をナノ秒の解像度(小数の最大9桁)で表します。
Instant instant = Instant.now();
その中にInstant
は、エポックからのナノ秒のカウントがあります。しかし、私たちは本当に気にしません。
ZonedDateTime
特定の地域の実時間のレンズを通してその瞬間を見たい場合は、を適用してZoneId
を取得しZonedDateTime
ます。
ZoneId z = ZoneId.of( "Europe/Paris" );
ZonedDateTime zdt = instant.atZone( z );
ショートカットとして、に直接行うことができますZonedDateTime
。
ZonedDateTime zdt = ZonedDateTime.now( z );
AZonedDateTime
はそのInstant
中にあります。UTCのzdt.toInstant()
基本値と同じ時刻を取得するために呼び出します。と同じナノ秒数-エポック以降、またはとして。ZonedDateTime
Instant
秒-エポックが与えられてから
エポック以降の秒数が与えられ、エポックがUTC(1970-01-01T00:00:00Z
)での1970年の最初の瞬間である場合は、その数値をにフィードしInstant
ます。
long secondsSinceEpoch = 1_484_063_246L ;
Instant instant = Instant.ofEpochSecond( secondsSinceEpoch ) ;
java.timeについて
java.timeフレームワークは、Java8以降に組み込まれています。これらのクラスは面倒古い取って代わるレガシーのような日付時刻クラスをjava.util.Date
、Calendar
、& SimpleDateFormat
。
詳細については、Oracleチュートリアルを参照してください。そして、StackOverflowで多くの例と説明を検索してください。仕様はJSR310です。
ジョダタイムプロジェクトは、今でメンテナンスモードへの移行をアドバイスjava.timeのクラス。
java.timeオブジェクトをデータベースと直接交換できます。JDBC4.2以降に準拠したJDBCドライバーを使用してください。文字列もクラスも必要ありません。java.sql.*
java.timeクラスはどこで入手できますか?
ThreeTen-エクストラプロジェクトでは、追加のクラスでjava.timeを拡張します。このプロジェクトは、java.timeへの将来の追加の可能性の証明の場です。あなたはここにいくつかの有用なクラスのような見つけることがInterval
、YearWeek
、YearQuarter
、および多くを。
import java.time.{Instant, LocalDateTime, ZoneId, ZoneOffset}
機能させるために使用している言語/方言は何ですか?これはunexpected token