3

真夜中から 15 マイクロ秒のブロックで Java の utc 時間をマイクロ秒単位で抽出する方法はありますか?

つまり、1 マイクロ秒から 15 マイクロ秒までの時間が同じタイミングで表されます。

4

3 に答える 3

1

唯一の問題は、時間の解像度です。java.util.Date一般に、Java はまたはを介し​​てミリ秒の精度をサポートしますSystem.currentTimeMillis()。より高い精度が必要な場合は、System.nanoTime()うまくいくかもしれません。

しかし、これは別の問題をもたらします。これはnanoTime()カレンダーとは関係ありません。これは、ナノ秒の精度で増え続けるカウンターです。私が考えることができる唯一の回避策は次のとおりです。

  • System.nanoTime()真夜中に値を決定し、それを呼び出しますS。これには問題があるかもしれませんが、真夜中まで待つ必要はありません。簡単な計算で十分です。

  • 以下を計算します。

    (System.nanoTime() - S) / 15000
    
  • 値が の場合0、同じ 15 マイクロ秒の範囲にいます

JVM とあなたのプログラムが実際にそのような短いタイミングを利用できると確信していますか?

于 2012-12-20T16:09:46.620 に答える
0

マイクロ秒単位で時間を取得する方法については、この質問を参照してください。マイクロ秒の日付タイミングは、Java では十分にサポートされていません。

Java はミリ秒単位の日付をサポートしており、一部のシステムでは、 を介してナノ秒のシステム時刻を取得できますSystem.nanoTime()。システムがナノ秒の解像度をサポートしている場合、ナノ秒の数値を変換して 15 マイクロ秒のブロックに丸める関数を作成するのはかなり簡単です。

于 2012-12-20T16:10:09.810 に答える