システムの日付を取得する必要があり、Javaはnew Date().getTime()
を提供します。
ただし、新しいオブジェクトの割り当てを避ける必要があります(組み込みシステムで作業しています)。新しいDate
オブジェクトを割り当てずにシステム時間を取得するにはどうすればよいですか?
Jzdが言うように、System.currentTimeMillis
。必要な場合はinDate
オブジェクトで、newDate
オブジェクトを作成したくない場合は、Date.setTime
既存のDate
オブジェクトを再利用します。個人的には、Date
が変更可能であるという事実は嫌いですが、この特定のケースでは多分が有用です。同様に、Calendar
にはsetTimeInMillis
メソッドがあります。
ただし、可能であれば、long
として保持することをお勧めします。タイムスタンプのみが効果的に必要な場合は、それが最善の方法です。
これは動作するはずです:
System.currentTimeMillis();
System.currentTimeMillis()
を使用できます。
少なくともOpenJDKでは、 Date
はこれを裏で使用します。
System
の呼び出しはネイティブJVMメソッドに対するものであるため、ここではありそうもないように見えますが、内部で割り当てが発生していないとは言えません。
System.currentTimeMillis()またはSystem.nanoTime()を使用します。