Date/Time 中級

マイクロ秒またはナノ秒精度でタイムスタンプを取得する。

✕ Java 8
// Millisecond precision only
long millis =
    System.currentTimeMillis();
// 1708012345678
✓ Java 9+
// Microsecond/nanosecond precision
Instant now = Instant.now();
// 2025-02-15T20:12:25.678901234Z
long nanos = now.getNano();
このコードに問題がありますか? お知らせください。
🎯

より高い精度

ミリ秒ではなくマイクロ秒・ナノ秒単位のタイムスタンプ。

📐

型安全

Instantは精度を内包するため、意味が曖昧なlongを使いません。

🌐

UTCベース

InstantはUTCに固定されており、タイムゾーンの混乱がありません。

旧来のアプローチ
ミリ秒
モダンなアプローチ
ナノ秒
JDKバージョン
9
難易度
中級
ナノ秒精度のInstant
利用可能

JDK 9(2017年9月)以降、広く利用可能

Java 9ではクロック解像度が改善され、Instant.now()はほとんどのプラットフォームでマイクロ秒精度(一部ではナノ秒)のタイムスタンプを取得できます。従来のcurrentTimeMillis()はミリ秒精度しかありませんでした。

共有 𝕏 🦋 in