Java SE 7および8 APIのDateTime関連クラスを使用して現在の時刻を表示するのに少し混乱しています。システムの現在の日時を取得するための複数の方法を検討しています。Javaの現在時刻apiの異なる値
私の質問はです:ミリ秒で表示するのが正確ですか?
次はコードスニペットです。私はJava 8を使用してレビューしています。
import java.time.Instant;
import java.util.Calendar;
import java.util.Date;
public class CurrentTimeValidationDemo {
public static void main(String[] args) {
Instant now = Instant.now();
Calendar calendar=Calendar.getInstance();
Date currDate = new Date();
System.out.println("new Date().getTime() = "+currDate.getTime());
System.out.println("System.currentTimeMillis() = "+System.currentTimeMillis());
System.out.println("Instant.now().toEpochMilli() = "+now.toEpochMilli());
System.out.println("Calendar.getInstance().getTimeInMillis() = "+calendar.getTimeInMillis());
System.out.println("Calendar.getInstance().getTime().getTime() = "+calendar.getTime().getTime());
}
}
「より正確に」を定義します。非常に関連しているhttp://stackoverflow.com/questions/368094/system-currenttimemillis-vs-new-date-vs-calendar-getinstance-gettime必ずしも同じものを印刷するとは限らないことに注意してください。Instant.nowは、マシンのタイムゾーンまたはDSTを考慮してください。 – Tunaki
Java-9の高度な解像度については、私の[SO-post](http://stackoverflow.com/a/33478391/2491410)も参照してください。 –
ナノ秒に若干の違いがあります。 – Jobin