私はJavaで、知っておく必要があります(私のバージョンは8 JDK)、私は置き換えることができ、new DateTime(System.currentTimeMillis())
「このコード形式DateTime.now()
」?
私はパッケージを使用しました import org.joda.time.DateTime;
どのようにJavaの8(日付と時刻)に、この同じことを書くのか?
TL; DR
java.time.Instant.now() // Capture the current moment in UTC.
内部的には、モーメントが1970-01-01T00のエポック参照ので、全体の秒数プラスナノ秒のカウントとして小数第として追跡される:00:00Z(Z
手段UTC)。
java.time
あなたのDateTime
クラスはジョダタイムライブラリから明らかです。そのライブラリの作成者、スティーブンColebourneは、とジョダタイムを交換するようになったjava.timeの JSR 310ごとに、後でのJava 8に組み込まれたクラスと。
Instant
UTC、使用中の瞬間のためにInstant
。UTCでの現在の瞬間をキャプチャするには、Instant.now()
。
Instant
UTCでの1970年の最初の瞬間のエポック参照ので、ナノ秒のカウント数を表します。
呼び出しはSystem.currentTimeMillis()
、ミリ秒単位ではなく、ナノ秒のより粗い解像度を除く1970 UTCの開始以来、数、同じです。現在の瞬間を捕捉するので、実際には、従来のコンピュータ・クロックが正確、ナノ秒単位で現在の瞬間を追跡することができないInstant
だけ(ジャワ9における典型的な以降)マイクロ秒(ジャワ8)ミリ秒を取り込むことができます。
結論:ありませんこれまでにコールする必要はSystem.currentTimeMillis()
。使用Instant.now()
代わりに。
ZonedDateTime
同等のはDateTime
可能でしょうZonedDateTime
。このクラスは、特定の領域(時間帯)の人々によって使用されるウォールクロック時間を通して見た瞬間を表しています。
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
ZonedDateTime zdt = ZonedDateTime.now( z ) ;