常にSystem.currentTimeMillis
固定長の値を返します。私のWindowsCore2では、13桁の長さの値を返します。
そのAPIから:
現在の時刻をミリ秒単位で返します。戻り値の時間の単位はミリ秒ですが、値の粒度は基盤となるオペレーティングシステムによって異なり、それよりも大きくなる場合があることに注意してください。たとえば、多くのオペレーティングシステムは、数十ミリ秒の単位で時間を測定します。
常にSystem.currentTimeMillis
固定長の値を返します。私のWindowsCore2では、13桁の長さの値を返します。
そのAPIから:
現在の時刻をミリ秒単位で返します。戻り値の時間の単位はミリ秒ですが、値の粒度は基盤となるオペレーティングシステムによって異なり、それよりも大きくなる場合があることに注意してください。たとえば、多くのオペレーティングシステムは、数十ミリ秒の単位で時間を測定します。
System.currentTimeMillis()
エポックからのミリ秒数、つまり 1970 年 1 月 1 日の午前 0 時 UTC からのミリ秒数を返します。
エポックからのミリ秒数が初めて 10 進数の 13 桁になったときを確認できます。これは次の日に発生しました
2001 年 9 月 9 日 01:46:40.000 UTC (エポックから 1'000'000'000'000 ミリ秒)
また、エポックからのミリ秒数が最後に 10 進数で 13 桁になる時期を確認することもできます。これは
2286 年 11 月 20 日 17:46:39.999 UTC (エポックから 9'999'999'999'999 ミリ秒)
したがって、これらの 2 つの日付の間では、マシンに現在の時刻が正しく設定されていると仮定すると、関数は常に 10 進数の 13 桁の値を返します。
したがって、今後 2 世紀以上の間、戻り値が 13 桁の 10 進数であると仮定しても問題ありません。
63 桁の 2 進数を返します (実際には常に正の 64 ビットの符号付き数値であるため、最上位ビットは設定されません)。先頭の桁の多くはゼロになります。10 進数に変換すると、通常、先頭のゼロは破棄されます。したがって、10 進数の桁数は異なります。