新しいJava 8のDate Time APIは、なぜナノ秒の精度を持たないのですか?[重複]。
質問
Java 8の新しいDate Time APIの機能の1つは、ナノ秒の精度であるとされています。しかし、私が現在のDate Timeを次のようにコンソールに出力すると
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("yyyy-MM-dd'T'HH:mm:ss,nnnnnnnnnZ");
System.out.println(OffsetDateTime.now().format(formatter));
ミリ秒の精度しか見えません:2015-11-02T12:33:26,746000000+0100
オペレーティング システムは、ナノ秒の精度をサポートしているようです。ターミナルで現在の日付時刻を印刷すると、次のようになります。
date -Ins
なるほど 2015-11-02T12:33:26,746134417+0100
Javaでナノ秒の精度を得るにはどうしたらいいですか?Ubuntu 14.04 64bitでOracle Java 1.8.0_66を動かしています。
どのように解決するのですか?
この
java.time
API全般
は
はナノ秒の精度を持ちます。例えば
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("yyyy-MM-dd'T'HH:mm:ss,nnnnnnnnnZ");
OffsetDateTime odt = OffsetDateTime.of(2015, 11, 2, 12, 38, 0, 123456789, ZoneOffset.UTC);
System.out.println(odt.format(formatter));
出力します。
2015-11-02T12:38:00,123456789+0000
しかし、これは
OffsetDateTime.now()
で返される時計の値で、ミリ秒しか持たない値を返しています。
から
Clock
の実装をJava 8で実装しました。
ここで提供されるクロックの実装は
System.currentTimeMillis()
. この方法は、時計の精度についてほとんど、あるいは全く保証しません。より正確な時計を必要とするアプリケーションは、NTPサーバーのような別の外部時計を使用して、この抽象クラスを自分で実装する必要があります。
つまり、ここには本質的に不正確なものはありません。
Clock
を使用しています。
System.currentTimeMillis()
. より精密なサブクラスを独自に作成することも可能でしょう。しかし、より精度の高いサブクラスを作るには、より多くの
精度
を追加することは、おそらくあまり有用ではありません。(確かにそうなる場合もあるかもしれませんが...)
関連
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
Java基礎 - マッピングとQ/A
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み] Javaは複数行の文字列をサポートしていますか?
-
[解決済み] なぜJava 8のOptionalは引数で使ってはいけないのか
-
[解決済み】array[idx++]+="a "は、Java 8ではidxを1回増やすが、Java 9と10では2回増やすのはなぜか?
-
[解決済み】Java 8 の Date Time API (java.time) と Joda-Time の相違点
-
[解決済み] 新しい日付時刻APIを使用した日付の書式設定
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
Jsoup-Crawlingの動作
-
Javaがテキストファイルを読み込む
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
Java基礎編 - オブジェクト指向
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
org.xml.sax.SAXParseExceptionのエラー解決方法
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.